vue2更改data里的變量不生效時(shí),深層更改data里的變量問題
vue2更改data里變量不生效,深層更改data里變量
如下圖,當(dāng)data里的數(shù)據(jù)多層嵌套

語法:
this.$set(位置,‘屬性',‘值');
示例:
this.$set(this.schoolBag[0].bagData[2],'value','666');
解釋:
設(shè)置第一個(gè)schoolBag數(shù)組里 的第三個(gè)bagData里 的value為666
vue 異步修改data中的值不生效
在做vue項(xiàng)目的時(shí)候,由于用到了echart社區(qū)的官方圖表,就小小的封裝了一下,封裝過后只需要傳入一個(gè)數(shù)組數(shù)據(jù)就可以渲染出圖表了,由于之前沒有數(shù)據(jù),我就在本地測試的時(shí)候傳給了他一些默認(rèn)數(shù)據(jù),但是到后來對接接口的時(shí)候,這是數(shù)據(jù)是從后臺哪里獲取的,所以我需要從vue data中拿數(shù)據(jù),然后傳到函數(shù)中,問題就是出在這一步,你死活無法拿到vue data中更新后的值,你說氣人不
這時(shí)會有人說,Vue是通過響應(yīng)式系統(tǒng)修改,響應(yīng)式系統(tǒng)會在初始化時(shí)對data進(jìn)行監(jiān)聽,如果要修改data中的值,應(yīng)該使用Vue提供的修改方法
this.$set(this.data, 'name', 'new value')
數(shù)組的話還可以這樣修改
this.arr.splice(0,1,[])
不過你要知道該方法觸發(fā)的時(shí)機(jī),數(shù)據(jù)如果沒有正確地綁定到模板中,那么即使使用了$set方法修改了data值,視圖也不會發(fā)生變化。
你可以通過在模板中使用{{}}或v-bind綁定數(shù)據(jù),這樣以確保數(shù)據(jù)能正確地渲染到視圖中。
才能準(zhǔn)確地觸發(fā)更新
相反如果數(shù)據(jù)沒有進(jìn)行綁定,你會發(fā)現(xiàn)不管你在哪里訪問data,拿到的永遠(yuǎn)是之前的值
具體可以看下面這張圖:

其實(shí)呢要解決這個(gè)問題也簡單,你只需要在返回一個(gè)promise就可以了
下面是一些具體實(shí)現(xiàn)方法:
<script>
export default {
data() {
return {
arr:[
[0,1,2,3],
[1,2,3,4],
[2,3,4,5],
]
}
},
methods: {
asyncfunc(){
return new Promise((resolve, reject) => {
setTimeout(() => {
this.$set(this.arr,0,[0,25])
resolve()
}, 5000);
})
}
},
mounted () {
this.asyncfunc().then((result) => {
console.log(this.arr[0],'值發(fā)生改變')
})
},
}
</script>
這樣你就可以拿到data中更新后的值啦?。?!
總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
Vue實(shí)現(xiàn)拖放排序功能的實(shí)例代碼
本文通過實(shí)例代碼給大家介紹了Vue中實(shí)現(xiàn)拖放排序功能,代碼簡單易懂,非常不錯(cuò),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2019-07-07
Vue 列表頁帶參數(shù)進(jìn)詳情頁的操作(router-link)
這篇文章主要介紹了Vue 列表頁帶參數(shù)進(jìn)詳情頁的操作(router-link),具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-11-11
vue項(xiàng)目中l(wèi)ess的一些使用小技巧
前段時(shí)間一直在學(xué)習(xí)vue,開始記錄一下遇到的問題,下面這篇文章主要給大家介紹了關(guān)于vue項(xiàng)目中l(wèi)ess的一些使用小技巧,文中通過示例代碼介紹的非常詳細(xì),需要的朋友可以參考下2021-09-09
vue實(shí)現(xiàn)表格動(dòng)態(tài)嵌入折線圖的繪制代碼
這篇文章給大家介紹了vue實(shí)現(xiàn)表格動(dòng)態(tài)嵌入折線圖的繪制方法,文中有詳細(xì)完整的代碼示例攻大家參考,對大家的學(xué)習(xí)或工作有一定的參考價(jià)值,需要的朋友可以參考下2023-10-10
Vue組件庫ElementUI實(shí)現(xiàn)表格列表分頁效果
這篇文章主要為大家詳細(xì)介紹了Vue組件庫ElementUI實(shí)現(xiàn)表格列表分頁效果,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-06-06

