如何追踪变化
当把一个普通过的javascript对象传入vue实例作为data选项,vue将遍历此对象所有的property,并使用 Object.defineProperty 把这些 property 全部转为 getter/setter。
这些getter/setter对用户来说不可见,但是它使得vue可以追踪依赖,在property被访问和修改时通知变更。vue中的每个组件都对应一个watcher实例,它会在组件渲染过程中把所有“接触”过的数据的property记录为依赖,之后在依赖项的setter触发时,通知watcher,从而使与之关联的组件重新渲染。