一、前言

在隨筆“模擬Vue之?dāng)?shù)據(jù)驅(qū)動(dòng)1”結(jié)尾處,我們說到如果監(jiān)聽的屬性是個(gè)對(duì)象呢?那么這個(gè)對(duì)象中的其他屬性豈不就是監(jiān)聽不了了嗎?

如下:

萬碼學(xué)堂,電腦培訓(xùn),計(jì)算機(jī)培訓(xùn),Java培訓(xùn),JavaEE開發(fā)培訓(xùn),青島軟件培訓(xùn),軟件工程師培訓(xù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)論