1.v-for合理使用 :key 管理重复元素,为了让vue内部核心代码能够快速找到指定的数据,从而提高性能
v-for遍历避免同时使用v-if 因为v-for的优先级要高于v-if 每次判断都会遍历整个数组,将会影响速度
2.v-if和v-show区分使用场景。如果运行时很少改变条件,不需要频繁切换的场景就使用v-if
如果非常频繁切换条件的场景就使用v-show,
3.使用keep-alive组件缓存,下次使用直接从缓存里取,避免了性能浪费
4.第三方组件按需引入,提高加载速度
5.图片懒加载,减少网络请求次数
6.路由或组件的懒加载,提高首屏渲染的速度,防止首屏卡顿
7.数据持久化的问题,使用防抖、节流进行优化,尽可能的减少请求次数,
8.模块化 尽可能的拆分组件,提高代码复用性,方便后期维护
9.长列表性能优化 vue会通过Object.defineProperty对数据进行劫持,来实现视图响应数据变化,而有些组件只是
纯粹的数据展示,不会有任何改变,就不需要vue劫持我们的数据,通过Object.freeze方法冻结一个对象
对象被冻结后将不可修改,在大量数据展示的情况下,能很明显的减少组件初始化时间
10.具名插槽使用v-slot:slotName,而不是slot="slotName"
旧写法是将插槽内容作为子组件渲染的,会在父组件的渲染函数中创建,插槽内容的依赖会被父组件收集
而新的写法将插槽内容放在 scopedSlots(作用域插槽)中,会在子组件的渲染函数中调用,插槽
内容的依赖会被子组件收集,
最终结果是:
当改变name属性时,旧的写法是调用父组件更新,然后父组件更新过程中调用子组件更新
而新写法是直接调用子组件更新
这样一来新写法就显得更加高效,性能更好