vue3原理与优化

要深入了解可以自行搜索

效率优化

  1. 静态提升
    • 元素节点
    • 没有绑定动态内容
  2. 预字符串化

遇到大量连续静态内容,会直接将其编译成为普通的字符串节点

  1. 缓存事件处理函数
  2. Block Tree

对比新旧两棵树的时候,静态节点不会进行对比,只对比动态节点

  1. PatchFlag

vue3知道节点哪些信息会发生变化,仅对比要发生变化的信息

响应式数据的变化

vue3不再使用Object.defineProperty的方式定义完成数据响应式,而是使用Proxy。
除了Proxy本身效率比Object.defineProperty更高之外,由于不必递归遍历所有属性,而是直接得到一个Proxy。所以在vue3中,对数据的访问是动态的,当访问某个属性的时候,再动态的获取和设置,这就极大的提升了在组件初始阶段的效率。
同时,由于Proxy可以监控到成员的新增和删除,因此,在vue3中新增成员、删除成员、索引访问等均可以触发重新渲染,而这些在vue2中是难以做到的。

vite

vite直接启动开发服务器,请求那个模块再对该模块进行实时编译,不需要像webpack那样打包合并,将开发环境下的模块文件作为浏览器要执行的文件,所以启动时不需要分析模块依赖,不需要编译,启动速度非常快,再HMR方面,改动一个模块后,仅需让浏览器重新请求该模块即可,不需要像webpack那样把该模块的相关依赖全部编译依次,效率更高,打包到生产环境时,使用rollup

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值