Skip to content

数据流

双方数据流对比,

vue

数据可变

数据响应式

  • vue2 使用了核心api,Object.defineProperty,

  • vue3 使用了ES6 的 Proxy,对数据进行变化侦测,添加 getter 和 setter,这样就知道数据何时被读取和修改

数据收集

核心是观察者模式

  • Vue对于每个数据都收集了与之相关的依赖,这里的依赖其实就是一个对象,保存有该数据的旧值及数据变化后需要执行的函数。每个响应式的数据变化时会遍历通知其对应的每个依赖,依赖收到通知后会判断一下新旧值有没有发生变化,如果变化则执行回调函数响应数据变化(比如修改 dom)。

react

数据不可变

不可变数据计算数据diff,需要用特定的api去处罚数据的变化。

差异

vue为immutable的代表,react为mutable。

Released under the MIT License.