第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

vue 數(shù)組對(duì)象的修改

vue 數(shù)組對(duì)象的修改

慕妹3242003 2019-05-23 19:03:04
根據(jù)vue官方文檔,直接修改數(shù)組的值,將無法更改view層,可以使用$set來實(shí)現(xiàn)。那么數(shù)組內(nèi)的對(duì)象如何修改呢,是使用$set來修改,還是直接使用數(shù)組下標(biāo)的方式修改。為什么我現(xiàn)在直接使用數(shù)組下標(biāo)的方式修改也能觸發(fā)view更新呢?
查看完整描述

2 回答

?
犯罪嫌疑人X

TA貢獻(xiàn)2080條經(jīng)驗(yàn) 獲得超4個(gè)贊

文檔中提到了這幾點(diǎn):
由于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
其中你的疑問是第一點(diǎn)吧?文檔的意思是比如現(xiàn)在有一個(gè)數(shù)組arr,內(nèi)容是[1,2,3],然后你想要加多一項(xiàng),然后arr[3]=4,這個(gè)時(shí)候Vue是檢測(cè)不到的,而且arr[0]=666也不行。數(shù)組內(nèi)的對(duì)象的內(nèi)容只要一開始添加了,就可以直接arr[index].key=val這樣改,如果是一開始沒有添加,那就要用$set添加。至于你說的可以監(jiān)聽到,可以發(fā)一個(gè)demo看一下
                            
查看完整回答
反對(duì) 回復(fù) 2019-05-23
?
呼如林

TA貢獻(xiàn)1798條經(jīng)驗(yàn) 獲得超3個(gè)贊

vue是沒有監(jiān)聽下標(biāo)賦值的操作也無法監(jiān)聽下面這種是無法監(jiān)聽的
vararr=["a","b"];
arr[1]="bbbb";
vue只監(jiān)聽了'push','pop','shift','unshift','splice','sort','reverse'等直接改變?cè)瓟?shù)組的方法而$set,內(nèi)部還是splice方法
functionset(target,key,val){
if(Array.isArray(target)&&typeofkey==='number'){
target.length=Math.max(target.length,key);
target.splice(key,1,val);
returnval
}
//其他操作
...
}
但是如果你的結(jié)構(gòu)下面:
vararr=["a",{text:"b"}];
arr[1].text="bbbbb";
因?yàn)閷?duì)數(shù)據(jù)進(jìn)行了遞歸對(duì)象的賦值是可以直接監(jiān)聽到的但是下面又不行了
vararr=["a",{text:"b"}];
arr[1]={text:"bbbbb"};
總結(jié)來說不要數(shù)組下標(biāo)直接賦值
vararr=["a",{text:"b"}];
this.arr[1]={text:"bbbbb"};//除了這種以下都可以
this.arr[1].text="bbbbb";//利用對(duì)象的監(jiān)聽
this.arr=["a",{text:"bbbbb"}];//同上
this.arr.splice(1,1,{text:"bbbbb"});//數(shù)組的監(jiān)聽
this.$set(this.arr,1,{text:"bbbbb"});//同上
                            
查看完整回答
反對(duì) 回復(fù) 2019-05-23
  • 2 回答
  • 0 關(guān)注
  • 1885 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)