一、前言 |
在隨筆“模擬Vue之?dāng)?shù)據(jù)驅(qū)動(dòng)1”結(jié)尾處,我們說(shuō)到如果監(jiān)聽的屬性是個(gè)對(duì)象呢?那么這個(gè)對(duì)象中的其他屬性豈不就是監(jiān)聽不了了嗎?
如下:
倘若user中的name、age屬性變化,如何知道它們變化了呢?
今兒,就來(lái)解決這一問(wèn)題。
通過(guò)走讀Vue源碼,發(fā)現(xiàn)他是利用Observer構(gòu)造函數(shù)為每個(gè)對(duì)象創(chuàng)建一個(gè)Observer對(duì)象,來(lái)監(jiān)聽數(shù)據(jù)的,如果數(shù)據(jù)中的屬性又是一個(gè)對(duì)象,那么就又通過(guò)Observer來(lái)監(jiān)聽嘛。
其實(shí),核心思想就是樹的先序遍歷(關(guān)于樹,可參考
延伸閱讀
學(xué)習(xí)是年輕人改變自己的最好方式