vue3性能优化

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


  • 当每次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')

你可能感兴趣的:(vue3性能优化)