面试被问到:有了解过vue3吗?能说说vue2和vue3的区别吗?
可以从如下角度回答(欢迎指正补充~)
1.vue2和vue3双向数据绑定的原理
vue2的双向数据绑定时通过 Object.defineProperty()对数据进行劫持,结合发布订阅者模式的方式实现的
vue3发生了改变,使用Proxy替换object.defineProperty。优势在于
- 可直接监听数组类型的数据变化
- 性能的提升
- 监听的目标为对象本身,不需要像Object.defineProperty一样遍历每个属性,有一定的性能提升
- 可直接实现对象属性的新增/删除
- vue2 使用的是 Object.definedProperty 的 get set 进行监控属性
- 他无法监控对象的属性的【增加删除】
- vue Proxy 深度监控对象 对象的属性的增加删除都可以监控到
2.根节点的不同
vue3在组件中支持多个根节点,可以写 多个div根标签
3.Composition API(组合api)
vue2和vue3最大的区别就是,vue3使用了Composition API
vue中是使用的Options API,这种写法不方便我们的阅读和交流,逻辑过于分散