vue3已成今年趋势,据我了解很多公司在今年都有计划将技术栈从vue2升级至vue3。所以在今年的金三银四过程中vue3也一定会是面试的大热门。在这里我汇总整理一些vue3必会知识点,持续更新,感谢关注!
Options Api
升级为 composition Api
;Object.defineProperty
变为ES2015中的Proxy
;template
中存在多个根节点;tree-shaking
,使vue3体积更小;createApp()
,vue2是new Vue()
。(createApp(组件)
,new Vue({template,render})
);v-model
代替之前的v-model
和.sync
;diff
算法优化,使用静态树提升。Object.defineProperty() 的问题主要有三个:
Proxy 在 ES2015 规范中被正式加入,它有以下几个特点:
支持数组:Proxy 不需要对数组的方法进行重载,省去了众多 hack,减少代码量等于减少了维护成本,而且标准的就是最好的。
除了上述两点之外,Proxy 还拥有以下优势:
diff
算法优化,在创建虚拟Dom
时增加了静态标记;计算属性
或方法
代替;$children
。template
支持多个根节点的原理);根据生命周期对比,可以看到在vue3中created
已完全被setup
所替代,所以在vue3中是没有created
的。这道题是在几天前被面试官问到的,所以在这里贴出来。
Tips:虽然vue3中没有created
,但是在vue3中仍可以用created
,只是用的是vue2中的created
,因为vue3向下兼容vue2