數(shù)據(jù)響應(yīng)式過程中,如果是對象和數(shù)組,會創(chuàng)建一個Observer對象并掛載到該對象或數(shù)組的__ob__屬性上,此Observer對象內(nèi)的subs數(shù)組持有的Watcher對象,與該對象或數(shù)組對應(yīng)的上級對象的key屬性對應(yīng)的watcher一致(該key會在閉包內(nèi)創(chuàng)建自己的Dep),如果上級對象仍然是數(shù)組,則會繼續(xù)往上找,直到找到對象屬性對應(yīng)的watcher,直接對該對象增減屬性或者對該數(shù)組內(nèi)的某項(xiàng)進(jìn)行替換并不會通知到Observer,相反通過Vue提供的$set和$delete則會主動通知該對象或數(shù)組上的Observer,并最終執(zhí)行各watcher內(nèi)的update實(shí)現(xiàn)更新,數(shù)組的更新同理,通過對數(shù)組原型方法進(jìn)行重寫實(shí)現(xiàn)主動通知Observer。
Vue源碼解讀一:Vue數(shù)據(jù)響應(yīng)式原理這方面的文章很多,但是我感覺很多寫的比較抽象,本文會通過舉例更詳細(xì)的解釋。(此文面向的Vue新手們,如果你是個大牛,看到這篇文章就可以點(diǎn)個贊,關(guān)掉頁面了。)通過閱讀這篇文章,...