借鑒博客: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)
.