1. vue2和vue3双向数据绑定原理发生了改变
-
vue2 的双向数据绑定是利用ES5 的一个 API
Object.definePropert()
对数据进行劫持 结合 发布订阅模式的方式来实现的。 -
vue3 中使用了 es6 的
Proxy
API 对数据代理。
2.默认进行懒观察(lazy observation)
在 2.x 版本里,不管数据多大,都会在一开始就为其创建观察者。当数据很大时,这可能会在页面载入时造成明显的性能压力。3.x 版本,只会对「被用于渲染初始可见部分的数据」创建观察者,而且 3.x 的观察者更高效。
3.更精准的变更通知。
比例来说:2.x 版本中,使用 Vue.set 来给对象新增一个属性时,这个对象的所有 watcher 都会重新运行;3.x 版本中,只有依赖那个属性的 watcher 才会重新运行。
4. 3.0 新加入了 TypeScript 以及 PWA 的支持
5.vue2和vue3组件发送改变
6.vue中的provide和inject
provide:
提供依赖``是一个对象,或者是一个返回对象的函数。里面呢就包含要给子孙后代的东西,也就是属性和属性值。
inject:
注入依赖
一个字符串数组,或者是一个对象。属性值可以是一个对象,包含from和default默认值。