最新公告
  • 欢迎您光临起源地模板网,本站秉承服务宗旨 履行“站长”责任,销售只是起点 服务永无止境!立即加入钻石VIP
  • 事关我对于前端面试题的收集--第二弹

    正文概述 掘金(陈小夫子)   2021-08-14   517

    “这是我参与8月更文挑战的第4天,活动详情查看:8月更文挑战”

    写在前面: 前段时间是在找工作,一直在寻找些线上面试,电话面试,然后碰到了很多有意思的面试题,有些知道解法,有些还不知道答案,记录一下.

    事关我对于前端面试题的收集--第二弹

    长列表数据解决方案之虚拟列表

    长列表问题如何解决

    • 懒加载->常见的无线滚动的,每次只渲染一部分(比如10条),等剩余部分滚到可见区域,就再渲染一部分。

      • 缺点:当翻了很多页之后,页面中有很多dom节点,用户上滑的体验不好
    • 可视区域加载->只渲染可见部分,不可见部分不渲染。

      • 有点类似于js实现无缝轮播的效果,在可视区域显示数据,在非可视区域提取渲染好即将展示的内容,但无缝轮播的dom还会在,虚拟列表的dom会被替换更新掉

    虚拟列表的实现

    1. 把列表分为三个区域,上缓冲区,可视区,下缓冲区
    2. 计算可视区域最多能展示多少项,并记录高度
    3. 监听用户滚动事件/触摸事件,记录用户滚动的高度,以此来计算可视区域的起始索引和结束索引(如果不是整数则设置偏移量).
    4. 创建一个函数,每当用户滚动时重新渲染可视区域的dom和偏移量,可以缩减到16ms执行一次
    5. 函数执行会获取最新的数据生成dom结构去替换之前可视区域的dom列表.

    设计模式之观察者模式

    观察者模式

    Vue插件发布流程

    1. 封装一个高复用组件(一定要设置name)

    2. 创建文件夹把组件放进去并创建入口文件index.js

    3. 创建install方法并把它暴露出去, 方法里面实现环境判断以及组件全局注册.

    4. package.json设置打包命令压缩打包,然后设置插件信息(备注,协议,main文件路径,是否私有)

    5. npm login 登录 -- npm publish 发布插件

    Vue的性能优化

    • 函数式组件,正常组件有template模板,有生命周期函数等等,在虚拟dom里会被递归,但函数式组件就是正常的真实dom,没有多余的东西,所以提示js渲染性能,在vue3中不推荐使用.

    • 缓存组件,被keep-alive包裹的组件不会因为切换路由而销毁实例和数据.

    • 非响应式数据,对于不需要响应式的对象或数组,进行手动标识(Object.freeze)不需要响应式,vue3里面已经实现

    • 异步组件(component:() => import('./component/helloworld'))如dialog框表单.

    单页面应用首屏优化

    • 路由懒加载

    • 插件按需加载或cdn引入

    • 模块按需加载

    • 骨架屏

    • webpack压缩代码gzip

    • 首屏添加缓存


    起源地下载网 » 事关我对于前端面试题的收集--第二弹

    常见问题FAQ

    免费下载或者VIP会员专享资源能否直接商用?
    本站所有资源版权均属于原作者所有,这里所提供资源均只能用于参考学习用,请勿直接商用。若由于商用引起版权纠纷,一切责任均由使用者承担。更多说明请参考 VIP介绍。
    提示下载完但解压或打开不了?
    最常见的情况是下载不完整: 可对比下载完压缩包的与网盘上的容量,若小于网盘提示的容量则是这个原因。这是浏览器下载的bug,建议用百度网盘软件或迅雷下载。若排除这种情况,可在对应资源底部留言,或 联络我们.。
    找不到素材资源介绍文章里的示例图片?
    对于PPT,KEY,Mockups,APP,网页模版等类型的素材,文章内用于介绍的图片通常并不包含在对应可供下载素材包内。这些相关商业图片需另外购买,且本站不负责(也没有办法)找到出处。 同样地一些字体文件也是这种情况,但部分素材会在素材包内有一份字体下载链接清单。
    模板不会安装或需要功能定制以及二次开发?
    请QQ联系我们

    发表评论

    还没有评论,快来抢沙发吧!

    如需帝国cms功能定制以及二次开发请联系我们

    联系作者

    请选择支付方式

    ×
    迅虎支付宝
    迅虎微信
    支付宝当面付
    余额支付
    ×
    微信扫码支付 0 元