Vue 性能优化笔记
1. 常见性能问题
- 大型列表渲染过慢
- 不必要的组件重渲染
- 频繁 watch 或计算属性计算
- 过度使用 v-if/v-for
2. 优化策略
- v-for + key 优化
1 | <div v-for="item in items" :key="item.id">{{ item.name }}</div> |
- key 唯一可追踪,减少 DOM 重建
- 组件懒加载
1 | const LazyComponent = defineAsyncComponent(() => import('./MyComponent.vue')); |
- 列表虚拟化
- 只渲染可视区域节点,减少 DOM
- 可使用
vue-virtual-scroll-list或自定义虚拟滚动
- 避免不必要的 watch
- watchEffect 自动追踪依赖,减少手动依赖计算
1 | watchEffect(() => { |
- keep-alive 缓存组件
1 | <keep-alive> |
模块 3:异步请求处理
1 | # 异步请求处理笔记 |
- 请求取消
- Axios cancelToken / AbortController
1 | const controller = new AbortController(); |
- 顺序请求
1 | async function loadData() { |
- 全局错误处理
1 | axios.interceptors.response.use( |