在從后臺獲取復(fù)雜數(shù)據(jù)類型時,有時我們會有從本地添加屬性的需求。 如圖, `item.hover` 是動態(tài)添加到 `changeUserList` 數(shù)組中的屬性,后臺的對象數(shù)組中沒有 `hover` 這個鍵,Vue 默認(rèn)情況下并不會對動態(tài)添加的屬性進行響應(yīng)式處理。
這種寫法就會導(dǎo)致在控制臺可以正常打印,但在HTML結(jié)構(gòu)中卻不會進行一些響應(yīng)式的變化。
這種情況通常發(fā)生在動態(tài)添加屬性或者鍵到對象上時,因為 Vue 默認(rèn)只會對初始化時就存在的屬性進行響應(yīng)式處理。
為了讓 Vue 能夠?qū)討B(tài)添加的屬性進行響應(yīng)式處理,可以使用 `Vue.set` 或 `this.$set` 方法將具體屬性添加到數(shù)組的每個對象中。示例如下:
除此之外還有一個解決方法是使用 `$forceUpdate()` 強制更新視圖。這個方法會重新渲染整個組件,但不推薦頻繁使用,因為它可能會影響性能。