一:编码阶段
尽量减少data中的数据,data中的数据都会增加getter和setter,会收集对应的watcher。
v-if和v-for不能连用
如果需要使用v-for给每项元素绑定事件时使用事件代理
SPA 页面采用keep-alive缓存组件
在更多的情况下,使用v-if替代v-show
key保证唯一
使用路由懒加载、异步组件
防抖、节流
第三方模块按需导入
长列表滚动到可视区域动态加载
图片懒加载
二: SEO优化
预渲染
服务端渲染SSR
三: 打包优化
压缩代码
Tree Shaking/Scope Hoisting(production的优化)
Tree Shaking:通常用于打包时移除JavaScript中未引用的代码
开发时引入一个模块,只用到其中的一个功能,那么打包的时候只会打包用到的功能。
Scope Hoisting:把你的打散的代码整个在一起(只引用一次 的代码)
使用cdn加载第三方模块
多线程打包happypack
sourceMap优化
splitChunks抽离公共文件
splitChunks抽离公共文件
webpack 4.x
optimization与output同级
optimization: {
runtimeChunk: {
name: 'manifest'
},
splitChunks: {
chunks: 'async',
minChunks: 2,
maxAsyncRequests: 5,
maxInitialRequests: 3,
name: false,
cacheGroups: {
vendor: {
name: 'vendor',
// chunks 有三个可选值,”initial”, “async” 和 “all”. 分别对应优化时只选择初始的chunks,所需要的chunks 还是所有chunk
chunks: 'initial',
priority: -10,
reuseExistingChunk: false,
test: /[\\/]node_modules[\\/]/
}
}
}
},
四:用户体验
骨架屏
PWA
还可以使用缓存(客户端缓存、服务端缓存)优化、服务端开启gzip压缩等。
五:解决vue打包wendor过大的问题
https://www.jianshu.com/p/b2fe6aebe691
最后编辑于 :2020.06.11 21:51:28
©著作权归作者所有,转载或内容合作请联系作者 平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。