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’)

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

前端段

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值