vue3优化总结

1、vue3内部使用了 Tree-shaking 技术,没有使用到的api,在打包时不会进行打包,直接进行移除了。
2、可以在vue.config.js中进行配置,一些consoel.log等打印输出的,vue的警告等在生产的时候,尽量不要展示,还有sourcemap等
3、使用异步组件进行异步加载const Foo = defineAsyncComponent(() => import(‘./Foo.vue’))
4、props父组件传参的稳定性
当传递的props值进行更新的时候,子组件就会进行更新

<ListItem
  v-for="item in list"
  :id="item.id"
  :active-id="activeId" />

当每次activeId每次更新的时候,子组件都会全部进行更新,此时我们应该加一个判断

<ListItem
  v-for="item in list"
  :id="item.id"
  :active="item.id === activeId" />

只有当activeId等于item.id的时候,在进行更新
5、也可以使用v-once,v-memo具体的场景使用,进行优化
6、当我们渲染大型的列表的时候,可以使用虚拟列表进行优化
如果你使用了ui框架,里面也会有虚拟列表的
也可以使用插件
vue-virtual-scroller
vue-virtual-scroll-grid
当然你也可以自己进行实现(后面会有虚拟列表的实现文章)
7、当我们使用响应式的api进行声明变量
如果不是页面上需要进行视图更新的,我们可以不用reactive,ref更进行声明,可以使用shallowRef() 和 shallowReactive() 浅层式响应进行声明(浅层式顶部是响应的,底部都不是响应数据)
8、有的页面我们可以使用缓存(可以是keep-alive,也可以使用本地),减少请求数据
9、使用ui框架进行按需引入
10、打包时开启gzip进行压缩,公共的样式,js文件等放到src下的assets会进行压缩
11、图片的优化,一般图标尽可能的使用iconfont中的图标,不要使用图片,也可以使用雪碧图(这个要看你的项目适不适合,雪碧图也是有缺点的),太大的图片进行压缩,可以把图片放到cdn上托管,减少使用本地图片(不过这个取决于网络,没有本地图片加载的快)或者使用图片懒加载(vue-lazyload)
有的插件可以使用cdn进行引入(不过这个也是有风险的,有时候插件进行更新,你就需要替换版本,否则会导致项目有问题)
12、在我们使用vue框架开发的时候,一些指令的合理使用
v-for跟v-if的使用,现在v3中v-if的优先级大于v-for
v-show和v-if的使用
v-for需要搭配key的使用,在diff算法更新的时候,可以更快速的只更新需要更新的数据,而不是无脑的全部进行更新
computed和watch的合理运用
使用监听/定时器的时候,在页面卸载的时候进行移除监听/取消定时器
将公共的样式,js等进行提取
合理的使用组件(组件的渲染要比dom渲染消耗的性能要大一点)
10、路由使用懒加载component:()=>import(‘…/views/home.vue’)

猜你喜欢

转载自blog.csdn.net/hkduan/article/details/129174394
今日推荐