vue性能优化
2022-01-24 10:30:05 0 举报
AI智能生成
登录查看完整内容
为你推荐
查看更多
vue项目性能优化总结 面试必备
作者其他创作
大纲/内容
函数式组件和普通的对象类型的组件不同,它不会被看作成一个真正的组件,在 patch 过程中,如果遇到一个节点是组件 vnode,会递归执行子组件的初始化过程;而函数式组件的 render 生成的是普通的 vnode,不会有递归子组件的过程,因此渲染开销会低很多。
函数式组件
把耗时任务的函数执行逻辑用子组件封装,由于 Vue 的更新是组件粒度的,虽然每一帧都通过数据修改导致了父组件的重新渲染,但是子组件却不会重新渲染,因为它的内部也没有任何响应式数据的变化。所以优化后的组件不会在每次渲染都执行耗时任务,自然执行的 JavaScript 时间就变少了。
子组件拆分
局部变量
v-show相比v-if销毁DOM和创建新DOM 性能更高
v-show复用
KeepAlive
Deferred渐进式渲染
Time slicing 时间片切割技术
内部提交的数据的时候,会默认把新提交的数据也定义成响应式,如果数据的子属性是对象形式,还会递归让子属性也变成响应式,因此当提交数据很多的时候,这个过程就变成了一个耗时过程。优化后把新提交的数据中的对象属性 data 手动变成了 configurable 为 false,这样内部在 walk 时通过 Object.keys(obj) 获取对象属性数组会忽略 data,也就不会为 data 这个属性 defineReactive,由于 data 指向的是一个对象,这样也就会减少递归响应式的逻辑,相当于减少了这部分的性能损耗。数据量越大,这种优化的效果就会更明显。
Non-reactive data 非响应式数据
Virtual scrolling 虚拟滚动
vue性能优化
0 条评论
回复 删除
下一页