vue 重塑數(shù)組之修改數(shù)組指定index的值操作
如下所示:
vm.items[indexOfItem] = newValue
vue不能檢測(cè)數(shù)組的變動(dòng)
想要實(shí)現(xiàn)可以使用vue的set方法
this.$set(this.items,indexOfItem,newValue);
補(bǔ)充知識(shí):vue中利用索引直接設(shè)置一個(gè)數(shù)組項(xiàng),不能觸發(fā)視圖更新的問(wèn)題
由于 JavaScript 的限制,Vue 不能檢測(cè)以下數(shù)組的變動(dòng):
1、當(dāng)你利用索引直接設(shè)置一個(gè)數(shù)組項(xiàng)時(shí),例如:vm.items[indexOfItem] = newValue
2、當(dāng)你修改數(shù)組的長(zhǎng)度時(shí),例如:vm.items.length = newLength
舉個(gè)例子:
var vm = new Vue({ data: { items: [’a’, ’b’, ’c’] }})vm.items[1] = ’x’ // 不是響應(yīng)性的vm.items.length = 2 // 不是響應(yīng)性的
為了解決第一類(lèi)問(wèn)題,以下兩種方式都可以實(shí)現(xiàn)和 vm.items[indexOfItem] = newValue 相同的效果,同時(shí)也將在響應(yīng)式系統(tǒng)內(nèi)觸發(fā)狀態(tài)更新:
// Vue.set
Vue.set(vm.items, indexOfItem, newValue)
// Array.prototype.splice
vm.items.splice(indexOfItem, 1, newValue)
你也可以使用 vm.$set 實(shí)例方法,該方法是全局方法 Vue.set 的一個(gè)別名:
vm.$set(vm.items, indexOfItem, newValue)
為了解決第二類(lèi)問(wèn)題,你可以使用 splice:
vm.items.splice(newLength)
以上這篇vue 重塑數(shù)組之修改數(shù)組指定index的值操作就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持好吧啦網(wǎng)。
相關(guān)文章:
1. JS中6個(gè)對(duì)象數(shù)組去重的方法2. Java commons-httpclient如果實(shí)現(xiàn)get及post請(qǐng)求3. 資深程序員:給Python軟件開(kāi)發(fā)測(cè)試的25個(gè)忠告!4. 一文帶你徹底理解Java序列化和反序列化5. PHP程序員簡(jiǎn)單的開(kāi)展服務(wù)治理架構(gòu)操作詳解(二)6. PHP利用curl發(fā)送HTTP請(qǐng)求的實(shí)例代碼7. Python基于requests庫(kù)爬取網(wǎng)站信息8. vscode運(yùn)行php報(bào)錯(cuò)php?not?found解決辦法9. PHP laravel實(shí)現(xiàn)導(dǎo)出PDF功能10. python中文本字符處理的簡(jiǎn)單方法記錄

網(wǎng)公網(wǎng)安備