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