Vue性能优化

2 阅读1分钟

页面加载优化

  • 选用正确的架构:对页面加载性能很敏感,选择服务器端渲染 (SSR) 或静态站点生成 (SSG) ;只是为了优化为数不多的营销页面的 SEO,直接选用SSG
  • 包体积与 Tree-shaking 优化
    • 使用生产环境构建,模板预编译
    • 尽量选择提供 ES 模块格式的依赖,如lodash-es
  • 代码分割
    • 打包工具可以通过分析 ESM 动态导入的语法来自动进行代码分割
    • defineAsyncComponent 异步组件
    • 懒加载路由 vue-router

更新优化

  • 尽量保持子组件的 props 稳定
  • 使用 v-once 渲染依赖运行时数据但无需再更新的内容
  • 使用 v-memo 条件地跳过某些大型子树或者 v-for 列表的渲染 仅在 3.2+ 中支持
  • 计算属性稳定性,在 Vue 3.4 及更高版本中,计算属性仅在其计算值较前一个值发生更改时才会触发副作用
  • 使用 KeepAlive 缓存不活跃的组件

通用优化

  • 虚拟列表,不需要立刻渲染出全部的列表 始终使用 key
  • 减少大型不可变数据的响应性开销,使用 shallowRef shallowReactive 绕开深度响应
  • 避免不必要的组件抽象,针对列表,去掉一个不必要的组件抽象,可能会减少数百个组件实例的无谓性能消耗。

参考链接

性能优化 | Vue.js