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