关于Vue 3.0的一些解析
前言:
- 正式版:
Vue
团队于2020.09.18日发布3.0正式版 - 前置条件:
Vue
虽然保留了大量的2.0版本api
,但由于是使用TypeScript
重构,所以想要学习3.0起码要掌握TS
的基础使用
Vue3.0中的六大亮点
序号 | 特性 | 解析 |
---|---|---|
1 | Performance |
性能上比Vue2.0快1.3~2倍 |
2 | Tree shaking support |
按需编译,体积更加轻量化 |
3 | Composition API |
组合API,可参考React hooks 理解 |
4 | Better TypeScript support |
对 Ts 提供了更好的支持 |
5 | Custom Renderer API |
暴露了自定义渲染API |
6 | Fragment,Teleport(Protal),Suspense |
更先进的组件 |
注:具体可以参考github
中Vue3.0
的相关源文件https://github.com/vuejs/vue-next/tree/master/packages
Vue3.0是基于什么优化,如何做到更轻量,更快的?
- 一 、diff 算法优化
- Vue 2中的虚拟Dom是全量比较
- Vue 3新增静态标记(PatchFlag)
- 在与数据变化后,与上次虚拟DOM节点比较时,只比较带有PatchFlag标记的节点
- 并且可以从flag信息中得知具体需要比较的内容。
静态标记就是非全量比较,只会比较那些被标记的变量,比较的数量大大减少因此提升性能
这让我想到了JS垃圾回收机制里的标记清除,ORZ 感觉熟悉,但回收机是全标记只是清除具有离开环境的标记变量而已)
内存垃圾回收机制在我去年的博文中