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、当我们渲染大型的列表的时候,可以使用虚拟列表进行优化
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')
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容