針對vue中請求數據對象新添加的屬性不能響應式的解決方法


1.需要給對象添加屬性時,不能采用傳統的obj.屬性=值,obj[屬性]=值 來添加屬性,在vue頁面時需要這樣使用

this.$set(obj,"propertyName","value") 來添加屬性    /* obj 要添加屬性的對象   propertyName  屬性名   value 屬性值 */

2.同理,在修改屬性的時候,在對應的方法中也需要this.$set(obj,"propertyName","value") 來修改屬性屬性  

注意新增,修改必須都寫!!!

這樣頁面就可以動態響應新添加的屬性了

 

1.vue不在data中聲明的對象不是響應式。采用傳統的obj.屬性=值,obj[屬性]=值 來添加屬性的時候會報錯
 
總結:

Vue不能檢測到對象屬性的添加或刪除,由於Vue在初始化實例時會對屬性執行getter/setter轉化,所以屬性必須在data上才能被執行,這個是響應式的。對於已創建的實例,Vue不允許添加根級別的響應式屬性。

解決方法:

方法一、在data中事先聲明該屬性;

方法二、使用 Vue.set(object, key, value)或 vm.$set(object, key, value) 添加


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM