vue中的for循環數組數據時,修改了數組中的值頁面不重新渲染for循環節點數據的問題


借鑒博客:https://www.cnblogs.com/songzxblog/p/12669029.html

 

解決辦法,直接在修改數組后加上:親測完全有效

this.$forceUpdate();

再操作完頁面數據后加上這行代碼,意思是強制刷新v-for的數據。可以解決v-for循環的值改變頁面不刷新的問題。

之所以導致頁面不刷新是由於在vue中根據下標改變數組內容時,或者改變數組長度時不會觸發頁面更新,只有push,splice 等操作數組時才會觸發頁面更新。

 

還有數組不更新問題:

  如:數組替換其中一個元素,頁面上卻更新數據

this.item[1] = 'd';  //頁面並不會響應式更新數據

 

最新找到以下幾種方法也可以:

  1、使用 splice方法,如:

let arr = [1, 2, 3];

arr.splice(0, 1, 4); //從下標0開始,下標為1的元素,替換成4

console.log(arr);  //打印:[4, 2, 3]

 

  2、Vue.set()

this.set(this.item, indexOfItem, newValue)

this.$set(this.item, indexOfItem, newValue)


 

 

 

 

.


免責聲明!

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



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