入口:
new Vue({option})
在Vue的构造函数中初始化至少包含compile和observer
compile:解析模板+data为ast----此时watcher已经创建
observer:使用Object.defineProperty来劫持各个属性的set,get,来达到监听data中的数据变化,劫持到了data变化会调用dep中的notify方法来通知各个watcher,通过调用watcher中保存的回调函数cb来更新view
watcher:是compile和observer的通信桥梁能够订阅并收到每个属性变动的通知,执行指令绑定的相应回调函数,从而更新视图