使用Vue.set()方法實(shí)現(xiàn)響應(yīng)式修改數(shù)組數(shù)據(jù)步驟
在頁面中顯示數(shù)組數(shù)據(jù)時(shí)發(fā)現(xiàn)了一個(gè)問題,當(dāng)在methods方法中修改數(shù)組數(shù)據(jù)后,雖然數(shù)組已經(jīng)發(fā)生改變,但是改變后的數(shù)據(jù)并沒有渲染到頁面上。這是因?yàn)樵赩UE中,如果在實(shí)例創(chuàng)建之后添加新的屬性或者改變屬性到實(shí)例上,它將不會(huì)觸發(fā)視圖更新。
而Vue.set()方法能夠確保響應(yīng)式對(duì)象被創(chuàng)建后仍然是響應(yīng)式的,同時(shí)觸發(fā)視圖更新,動(dòng)態(tài)響應(yīng)數(shù)據(jù)的變化。
用法如下:
Vue.set(object,index,value)
object:要更改的數(shù)據(jù)源(數(shù)組或?qū)ο螅?/p>
index:數(shù)據(jù)的索引(第幾項(xiàng))
value:修改后的值
實(shí)例
<div v-for="(item,index) in state">
<div class="student">
<span>
<img src="./../../../assets/icon.jpg">
<span>小五</span>
</span>
<span><button @click="attence(index)">{{item}}</button></span>
</div>
</div>

該頁面的考勤情況數(shù)據(jù)來源于一個(gè)數(shù)組,點(diǎn)擊以后,考勤情況將會(huì)發(fā)生改變。
data(){
return{
id:1,
state:['未知','未知','未知','未知','未知','未知','未知','未知','未知']
}
},
methods:{
attence:function(num){
if(this.state[num]=='未知'){
Vue.set(this.state,num,'出勤');
}
else if(this.state[num]=='出勤'){
Vue.set(this.state,num,'請(qǐng)假');
}
else if(this.state[num]=='請(qǐng)假'){
Vue.set(this.state,num,'缺勤');
}
else if(this.state[num]=='缺勤'){
Vue.set(this.state,num,'未知');
}
}
}
在這段代碼中,數(shù)組中的數(shù)據(jù)初始值全都是未知,點(diǎn)擊按鈕以后,attence()方法會(huì)根據(jù)傳入的參數(shù)改變數(shù)組中的值,傳入的參數(shù)是幾就改變第幾項(xiàng)的數(shù)據(jù)。頁面將會(huì)及時(shí)對(duì)數(shù)據(jù)變化作出響應(yīng),渲染出來。

注:該方法也可用來增加數(shù)據(jù),只需將第二項(xiàng)的索引值賦為數(shù)組的長度,第三項(xiàng)為增加的數(shù)據(jù)值。
以上這篇使用Vue.set()方法實(shí)現(xiàn)響應(yīng)式修改數(shù)組數(shù)據(jù)步驟就是小編分享給大家的全部內(nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
在Vue3項(xiàng)目中使用VueCropper裁剪組件實(shí)現(xiàn)裁剪及預(yù)覽效果
這篇文章主要介紹了在Vue3項(xiàng)目中使用VueCropper裁剪組件(裁剪及預(yù)覽效果),本文分步驟結(jié)合實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2023-07-07
淺談vue實(shí)現(xiàn)數(shù)據(jù)監(jiān)聽的函數(shù) Object.defineProperty
本篇文章主要介紹了淺談vue實(shí)現(xiàn)數(shù)據(jù)監(jiān)聽的函數(shù) Object.defineProperty,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-06-06
vue指令只能輸入正數(shù)并且只能輸入一個(gè)小數(shù)點(diǎn)的方法
這篇文章主要介紹了vue指令只能輸入正數(shù)并且只能輸入一個(gè)小數(shù)點(diǎn)的方法,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2018-06-06
vue實(shí)現(xiàn)帶自動(dòng)吸附功能的懸浮球
這篇文章主要為大家詳細(xì)介紹了vue實(shí)現(xiàn)帶自動(dòng)吸附功能的懸浮球,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-04-04

