1. 资源压缩- 体积优化
打包分析,去除一些没必要的引入, 一些组件库或者插件库按需引入, 压缩图片,优化SVG图片
2. 传输优化
托管至OSS + CDN加速, 开启HTTP2
HTTP/2在性能、安全性和可用性方面都有显著的改进,可以使 Web 应用更加快速、高效和可靠。
-
多路复用:HTTP/2 允许同时发送多个请求和响应,而不是像 HTTP/1.1 一样只能一个一个地处理。这样可以减少延迟,提高效率,提高网络吞吐量。
-
二进制传输:HTTP/2 使用二进制协议,与 HTTP/1.1 使用的文本协议不同。二进制协议可以更快地解析,更有效地传输数据,减少了传输过程中的开销和延迟。
-
改进的安全性:HTTP/2 默认使用 TLS(Transport Layer Security)加密传输数据,提高了安全性。
-
兼容 HTTP/1.1:HTTP/2 可以与 HTTP/1.1 共存,服务器可以同时支持 HTTP/1.1 和 HTTP/2。如果客户端不支持 HTTP/2,服务器可以回退到 HTTP/1.1
3. 感知优化
loading动画, 骨架加载, 图片懒加载,
4. 代码层面(vue优化)
1. 路由懒加载
借助webpack的import()实现异步组件, 通过**import()**引用的子模块会被单独分离出来,打包成一个单独的文件(打包出来的文件被称为chunk )。访问时才异步加载,
2. 组件缓存
避免重复创建组件实例, 保留组件缓存状态
3. 多使用v-show ,避免重复创建组件, 避免 v-if 和v-show 一起使用 ,
不再变化的数据可以使用v-once, 按自定义条件跳过更新使用 v-momo, 有条件的跳过渲染
4. 长列表虚拟滚动
虚拟滚动——指的是只渲染可视区域的列表项,非可见区域的不渲染,在滚动时动态更新可视区域,该方案在优化大量数据渲染时效果是很明显的
5. 事件销毁
6. 图片懒加载(v-lazy)
7. 子组件分割策略: 重逻辑,状态组件适合拆分, 不宜过度拆分组件, 组件实例消耗远大于纯DOM节点