介绍基本原理之前,先看看一下代码
new Vue({
el:'#app',
render: h => h(App),
})
new Vue
也就是创建一个Vue实例,随之Vue会遍历data中属性,使用Object.defineProperty
递归的给每个属性都添加getter/setter
,并且在内部追踪相关的依赖,每个组件实例都有自己对应的watcher
实例,它会在组件渲染的过程中把属性记录为依赖,当属性被访问,对应的setter
会被调用,并通知watcher
重新计算,从而使得组件得以更新,