鍍金池/ 問(wèn)答/HTML/ vue中v-for循環(huán)時(shí),列表的數(shù)據(jù)更新但是頁(yè)面未渲染,應(yīng)該怎么使其渲染?

vue中v-for循環(huán)時(shí),列表的數(shù)據(jù)更新但是頁(yè)面未渲染,應(yīng)該怎么使其渲染?

vue中v-for循環(huán)時(shí),列表的數(shù)據(jù)更新但是頁(yè)面未渲染,應(yīng)該怎么使其渲染?
官方說(shuō)有變異方法,push,shift之類(lèi)的,目前只能用笨方法加個(gè)push然后重新渲染了,但是覺(jué)得不是很好,請(qǐng)問(wèn)有沒(méi)有正規(guī)一點(diǎn)的方法數(shù)據(jù)刷新時(shí)列表跟著刷新。

回答
編輯回答
無(wú)標(biāo)題

vue官方文檔:
https://cn.vuejs.org/v2/guide...

由于 JavaScript 的限制,Vue 不能檢測(cè)以下變動(dòng)的數(shù)組:
當(dāng)你利用索引直接設(shè)置一個(gè)項(xiàng)時(shí),例如:vm.items[indexOfItem] = newValue
當(dāng)你修改數(shù)組的長(zhǎng)度時(shí),例如:vm.items.length = newLength

為了解決第一類(lèi)問(wèn)題,以下兩種方式都可以實(shí)現(xiàn)和 vm.items[indexOfItem] = newValue相同的效果,同時(shí)也將觸發(fā)狀態(tài)更新:
// Vue.set Vue.set(example1.items, indexOfItem,newValue)
// Array.prototype.splice example1.items.splice(indexOfItem,1, newValue)
為了解決第二類(lèi)問(wèn)題,你可以使用 splice: example1.items.splice(newLength)

以上兩類(lèi)要特殊處理, 其他的列表數(shù)據(jù)變動(dòng)是能被vue檢測(cè)到的(包括各種splice,sort,push, 或者整個(gè)數(shù)組替換等等)

2018年7月14日 10:21
編輯回答
毀了心

試試Vue.set?
如果實(shí)在懶,可以this.data = JSON.parse(JSON.stringify(this.data));?

2018年2月15日 18:00