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

該頁面的考勤情況數(shù)據(jù)來源于一個數(shù)組,點擊以后,考勤情況將會發(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,'未知');
}
}
}
在這段代碼中,數(shù)組中的數(shù)據(jù)初始值全都是未知,點擊按鈕以后,attence()方法會根據(jù)傳入的參數(shù)改變數(shù)組中的值,傳入的參數(shù)是幾就改變第幾項的數(shù)據(jù)。頁面將會及時對數(shù)據(jù)變化作出響應(yīng),渲染出來。

注:該方法也可用來增加數(shù)據(jù),只需將第二項的索引值賦為數(shù)組的長度,第三項為增加的數(shù)據(jù)值。
以上這篇使用Vue.set()方法實現(xiàn)響應(yīng)式修改數(shù)組數(shù)據(jù)步驟就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
Vue實現(xiàn)用戶沒有登陸時,訪問后自動跳轉(zhuǎn)登錄頁面的實現(xiàn)思路
這篇文章主要介紹了Vue實現(xiàn)用戶沒有登陸時,訪問后自動跳轉(zhuǎn)登錄頁面,定義路由的時候配置屬性,這里使用needLogin標記訪問頁面是否需要登錄,本文通過實例代碼介紹的非常詳細,需要的朋友可以參考下2023-02-02
vue實現(xiàn)錨點跳轉(zhuǎn)之scrollIntoView()方法詳解
這篇文章主要介紹了vue實現(xiàn)錨點跳轉(zhuǎn)之scrollIntoView()方法,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-09-09
html中引入Vue.js的cdn實現(xiàn)簡單的文檔單頁
這篇文章主要為大家介紹了html中引入Vue.js的cdn實現(xiàn)簡單的文檔單頁示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2023-08-08
vue2和el-input無法修改和寫入并且不報錯的解決方案
這篇文章主要介紹了vue2和el-input無法修改和寫入并且不報錯的解決方案,本文給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友參考下吧2024-07-07
vue.js表單驗證插件(vee-validate)的使用教程詳解
這篇文章主要介紹了vue.js表單驗證插件(vee-validate)的使用,本文通過實例代碼給大家介紹的非常詳細,具有一定的參考借鑒價值,需要的朋友可以參考下2019-05-05

