Vue性能优化

191 阅读1分钟

编码优化

data属性

不要将所有的数据都放在data中,data中的数据都会增加getter和setter,会收集对应的watcher

spa页面采用keep-alive缓存组件

keep-alive可以实现组件的缓存功能,缓存当前组件的实例

拆分组件

  • 提高复用性、增加代码的可维护性
  • 减少不必要的渲染(尽可能细化拆分组件)

v-if

当值为false时内部指令不会执行,具有阻断功能,很多情况下使用v-if代替v-show

key保证唯一性

  • 默认vue会采用就地复用策略
  • 如果数据项的顺序被改变,Vue不会移动DOM元素来匹配数据项的顺序
  • 应该用数据的id作为key属性

Object.freeze

vue会实现数据劫持,给没个属性增加getter和setter,可以使用freeze冻结数据

Object.freeze([{value:1},{value:2}])

在数据劫持时属性不能被配置,不会重新定义

webpack打包优化

使用cdn的方式加载第三方模块,设置externals 多线程打包happypack splitChunks抽离公共文件 sourceMap的配置

webpack-bundle-analyzer  分析打包的插件