原理方面:
- vue3响应式原理改成了proxy,解决了数组无法通过下标修改,无法监听到对象属性的新增和删除的问题,提升了响应式效率。
- vue2里是使用了this.set()方法设置新属性,删除则需要this.delete()方法删除属性。
- vue3也并非全部舍弃了Object.defineProperty,通过reactive定义的响应式数据使用proxy包装出来,而ref还是需要Object.defineProperty去给了一个空对象,定义一个value属性来做响应式。
- 生命周期增加了组合式API,setup方法。
- 组合式API的写法下,源码改成了函数式编程,方便按需引入,有些功能是必须分配按需引入的,比如tree-shaking。所以vue3在这方面能让tree-shaking打包会更小。
- 性能优化,增加了静态节点标记,会标记静态节点,不对静态节点进行对比。
- vue3不推荐使用mixin进行复用逻辑提取,而是推荐写成hook。
- v-model应用于组件时,监听的事件和传递的值改变。
- vue3更加的配合了ts的使用。
9.v-if和v-for的优先级不一样,比如vue2里v-for优先级更高,vue3里v-if优先级更高。
10.vue3新增了一个传送门的组件,Teleport。
<Teleport to="body">
需要传送到body下面的内容
</Teleport>
11.diff算法的不同。
标签:优先级,区别,响应,vue2,vue3,节点,属性 From: https://www.cnblogs.com/jia-95/p/18292584