vue 中數據改變,強制視圖更新


 vue中數據改變,強制視圖更新,視圖不更新的原因和解決辦法

 

辦法1,用 Object.assign

對象改變:oldObj = Object.assign({},newObj);

原理:對象是引用類型,直接改變oldObj的某屬性指向地址沒變,vue不一定能監控到,所以當我們新建一個對象並賦值給oldObj字段的話,直接改變了它的指向地址

 

辦法2,用vue.set

對象和數組都能用的

this.$set(this,'oldObj',newObj);
this.$set(this,'oldArray',newArray);

例如要改變data中 some: { name: { a: 1, b: 3 } }里面b的值,可以這樣

this.$set(this.some.name,‘b’,2)

Vue不允許在已經創建的實例上動態添加新的根級響應式屬性,然而它可以使用vue.set方法將相應屬性添加到嵌套的對象上。

 

辦法3,使用update

this.$forceUpdate(),強制視圖更新

 


————————————————
版權聲明:本文為CSDN博主「tangdou5682」的原創文章,遵循 CC 4.0 BY-SA 版權協議,轉載請附上原文出處鏈接及本聲明。
原文鏈接:https://blog.csdn.net/tangdou5682/article/details/99946515


免責聲明!

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



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