初始化Dtata
初始化執行在VUE內部屬性上加入componennts directive等定義一些全域性API 像Vue.use Vue.mixin
例項化VM元件的時候會根據data屬性
initData 會對option.data屬性進行遍歷新增監聽,這裡會有展開屬性的操作,進入defineReactive$$1函式。建立ObjectDefinePrototype閉包,將dep例項存放在內部引用,defineReactive$$1定義get set屬性
元件的child.$mount 這是單頁面形式 如果單使用VUE 提供el的話 是直接進入mount方法 mountComponent
建立Watcher例項,繫結在當前的例項,傳入updateComponent方法,也是就VM_update
在watcher建構函式中獲取當前的value,進入this.get,設定Dep.target為當前的watchert(因為defineReactive 方法裡是額外呼叫的,需要設定全域性變數來獲取,Dep.target 是當前的watcher例項)這個時候之前在initData已經註冊過的會開始呼叫物件的get屬性,
webpack把模板轉換為_c函式 分為靜態不編譯和動態編譯的陣列 [_c('h1', [_vm._v(_vm._s(_vm.msgaaa))])]) 生產Vnode
問題1
呼叫屬性get出錯怎麼辦