Vue基本原理

当一个Vue实例创建时, Vue会遍历data中的所有属性, 用Object.defineProperty()进行数据劫持, 通过get和set函数, 当数据被访问时, 会调用get函数, 当数据被修改时, 会调用set函数, 然后在内部追踪相关依赖, 在属性被访问和修改时发生相应变化. 每个组件实例都有一个watcher实例, 它会在组件中把属性记录为依赖, 之后当依赖的setter被调用时, 会通知watcher重新计算, 从而致使它在关联的组件得以更新