Vue性能优化
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
2
3watchEffect(() => {
console.log(state.value);
});
- keep-alive 缓存组件
1
2
3<keep-alive>
<MyComponent v-if="show" />
</keep-alive>
模块 3:异步请求处理
1 | # 异步请求处理笔记 |
- 请求取消
- Axios cancelToken / AbortController
1
2
3
4const controller = new AbortController();
fetch('/api', { signal: controller.signal });
// 取消请求
controller.abort();
顺序请求
1
2
3
4async function loadData() {
const data1 = await fetchA();
const data2 = await fetchB(data1);
}全局错误处理
1
2
3
4axios.interceptors.response.use(
res => res,
err => { console.error(err); return Promise.reject(err); }
)
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 森叶!