编码优化
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 分析打包的插件