Vue 3.0 性能提升主要是通过哪几方面体现的?

77hu尾2021-10-22 15:15

Vue2.0发布到Vue3.0发布之间相隔4年多,Vue3.0提供了更好的性能和更小的捆绑包体积,支持更好的TypeScript集成,并为框架未来的长期迭代奠定了坚实的基础。

Vue 3.0 性能提升主要是通过哪几方面体现的?

1.响应式系统提升

vue2在初始化的时候,对data中的每个属性使用definepropery调用getter和setter使之变为响应式对象。如果属性值为对象,还会递归调用defineproperty使之变为响应式对象。

vue3使用proxy对象重写响应式。proxy的性能本来比defineproperty好,proxy可以拦截属性的访问、赋值、删除等操作,不需要初始化的时候遍历所有属性,另外有多层属性嵌套的话,只有访问某个属性的时候,才会递归处理下一级的属性。

优势:

可以监听动态新增的属性;

可以监听删除的属性;

可以监听数组的索引和length属性;

2.编译优化

优化编译和重写虚拟dom,让首次渲染和更新dom性能有更大的提升vue2通过标记静态根节点,优化diff算法vue3标记和提升所有静态根节点,diff的时候只比较动态节点内容

Fragments,模板里面不用创建唯一根节点,可以直接放同级标签和文本内容

静态提升

patch flag,跳过静态节点,直接对比动态节点,缓存事件处理函数

3.源码体积的优化

vue3移除了一些不常用的api,例如:inline-template、filter等使用tree-shaking

Vue3.0从入门到精通,点击下方图片立即免费领课。

免责声明:本站所提供的内容均来源于网友提供或网络搜集,由本站编辑整理,仅供个人研究、交流学习使用。如涉及版权问题,请联系本站管理员予以更改或删除。
有用1
分享