使用Vue.set()方法實現響應式修改數組數據步驟
在頁面中顯示數組數據時發(fā)現了一個問題,當在methods方法中修改數組數據后,雖然數組已經發(fā)生改變,但是改變后的數據并沒有渲染到頁面上。這是因為在VUE中,如果在實例創(chuàng)建之后添加新的屬性或者改變屬性到實例上,它將不會觸發(fā)視圖更新。
而Vue.set()方法能夠確保響應式對象被創(chuàng)建后仍然是響應式的,同時觸發(fā)視圖更新,動態(tài)響應數據的變化。
用法如下:
Vue.set(object,index,value)
object:要更改的數據源(數組或對象)
index:數據的索引(第幾項)
value:修改后的值
實例
<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>

該頁面的考勤情況數據來源于一個數組,點擊以后,考勤情況將會發(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,'請假');
}
else if(this.state[num]=='請假'){
Vue.set(this.state,num,'缺勤');
}
else if(this.state[num]=='缺勤'){
Vue.set(this.state,num,'未知');
}
}
}
在這段代碼中,數組中的數據初始值全都是未知,點擊按鈕以后,attence()方法會根據傳入的參數改變數組中的值,傳入的參數是幾就改變第幾項的數據。頁面將會及時對數據變化作出響應,渲染出來。

注:該方法也可用來增加數據,只需將第二項的索引值賦為數組的長度,第三項為增加的數據值。
以上這篇使用Vue.set()方法實現響應式修改數組數據步驟就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關文章
vue實現錨點跳轉之scrollIntoView()方法詳解
這篇文章主要介紹了vue實現錨點跳轉之scrollIntoView()方法,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-09-09
vue2和el-input無法修改和寫入并且不報錯的解決方案
這篇文章主要介紹了vue2和el-input無法修改和寫入并且不報錯的解決方案,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友參考下吧2024-07-07
vue.js表單驗證插件(vee-validate)的使用教程詳解
這篇文章主要介紹了vue.js表單驗證插件(vee-validate)的使用,本文通過實例代碼給大家介紹的非常詳細,具有一定的參考借鑒價值,需要的朋友可以參考下2019-05-05

