鍍金池/ 問答/Linux  HTML/ Vue 中 watch 不會觸發(fā)的情況

Vue 中 watch 不會觸發(fā)的情況

Vue 中的watch主要用于監(jiān)聽 data 值,并執(zhí)行一些自定義操作。

若監(jiān)聽的 data 發(fā)生變化,則執(zhí)行這些操作,反之則不執(zhí)行。

問題來了

當(dāng)watch監(jiān)聽一個(gè)data,arr

當(dāng)arr從[1]變?yōu)閇],watch事件觸發(fā),當(dāng)arr從[]變?yōu)閇],watch不會出發(fā)

因?yàn)?[] === [],為false

所以覺得這邊很奇怪

請明白其中原因的大佬解釋一下為何會發(fā)生這種原因。

不勝感激

回答
編輯回答
乖乖噠

[] == [] 當(dāng)兩個(gè)值都是對象 (引用值) 時(shí), 比較的是兩個(gè)引用值在內(nèi)存中是否是同一個(gè)對象. 因?yàn)榇?[] 非彼 [], 雖然同為空數(shù)組, 確是兩個(gè)互不相關(guān)的空數(shù)組, 自然 == 為 false.

2018年3月30日 10:58
編輯回答
舊酒館

性能優(yōu)化,如果數(shù)據(jù)沒發(fā)生變化也要執(zhí)行你在watch中的邏輯,這樣框架設(shè)計(jì)明顯不合理。

2017年12月27日 02:00