av一区二区在线观看_亚洲男人的天堂网站_日韩亚洲视频_在线成人免费_欧美日韩精品免费观看视频_久草视

您的位置:首頁技術文章
文章詳情頁

解決vue無法偵聽數組及對象屬性的變化問題

瀏覽:2日期:2023-01-06 16:12:37

一、數組

1、可以監聽到的情況

如push、splice、=賦值(array=[1,2,3])

2、無法監聽到的情況

使用下標修改某個元素(這種比較常見)

array[index] = 1

object.a = 3

直接修改數組length

array.length = 5

3、解決方案

this.$set(array, index, data) - 這是個深度的修改,某些情況下可能導致你不希望的結果,因此最好還是慎用this.dataArr = this.originArrthis.$set(this.dataArr, 0, {data: ’修改第一個元素’})console.log(this.dataArr) console.log(this.originArr) //同樣的 源數組也會被修改 在某些情況下會導致你不希望的結果

上面提到的splice方法進行增刪改

利用臨時變量進行中轉

let tempArr = [...this.targetArr]tempArr[0] = {data: ’test’}this.targetArr = tempArr

二、對象

對象和數組都是js里的引用類型,在實際存儲中,數據是存儲在堆中的,利用存儲在棧里的對象名或者數組名的指針進行索引,因此也存在在淺拷貝和深拷貝以及等號賦值時,到底是僅僅新建了一個指針指向了同一份數據,還是兩個指針分別指向了兩份完全一樣的數據的問題

1、可以監聽到的

對象的直接=賦值

this.obj = {name: ’test’}

2、無法監聽到的

對象屬性的增刪改

obj: { prop1: ’data1’, prop2: ’data2’}...// 增this.obj.prop3 = ’data3’// 刪delete this.obj.prop1// 改this.obj.prop1 = ’data4’

3、解決辦法

this.$set(obj, key ,value) - 可實現增、改watch時添加deep:true深度監聽,只能監聽到屬性值的變化,新增、刪除屬性無法監聽this.$watch(’blog’, this.getCatalog, { deep: true // immediate: true // 是否第一次觸發 });watch時直接監聽某個keywatch: { ’obj.name’(curVal, oldVal) { // TODO }}object.assign()+直接=賦值this.watchObj = Object.assign({}, this.watchObj, { name: ’xiaoyue’, age: 15,});

補充知識:vue 監聽不到數組或對象值的變化怎么辦

一、vue監聽數組的變化

vue能購監聽到數組變化的場景

通過賦值的形式改變正在被監聽的數組;

通過splice(index, num, val) 的形式改變正在被監聽的數組;

通過數組的push的形式改變正在被監聽的數組。

vue無法監聽數組變化的場景

通過數組索引改變數組元素的值;

改變數組的長度;

vue無法監聽數組變化的場景

this.$set(arr, index, newVal);

通過splice(index,num,val);

使用臨時變量作為中轉,重新賦值數組;

二、vue監聽對象的變化

vue能夠監聽到對象變化的場景

通過直接賦值的場景。

eg:watchObj = {name:“zyk”}

vue無法監聽到對象變化的場景

對象的增加、刪除、修改無法被vue監聽到

vue解決無法監聽對象變化的方法

使用 this.$set(object, key, value)(vue 無法監聽 this.set 修改原有屬性)

使用Object.assign(),直接賦值的原理;(推薦使用)

以上這篇解決vue無法偵聽數組及對象屬性的變化問題就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持好吧啦網。

標簽: Vue
相關文章:
主站蜘蛛池模板: 亚洲国产精品99久久久久久久久 | 伊人春色成人网 | 中文字幕欧美日韩 | 日韩电影中文字幕 | 欧美簧片 | 毛片com | www国产亚洲精品 | 九色在线观看 | 亚洲系列第一页 | 久久久久国产精品 | 国产精品久久国产精品 | 91精品麻豆日日躁夜夜躁 | 国产欧美日韩一区二区三区在线观看 | 狠狠的日 | 欧美一级在线 | 国产露脸国语对白在线 | 欧美性视频在线播放 | 欧美一区日韩一区 | 欧美成人综合 | 日韩午夜影院 | 久久国产精品精品国产色婷婷 | 欧美色综合天天久久综合精品 | 九色视频网| 日本视频一区二区 | 久久激情av | 亚洲精品亚洲人成人网 | 日韩久久久久久久久久久 | 野狼在线社区2017入口 | 久久久久亚洲精品国产 | 中文字幕乱码视频32 | 天天干天天爱天天爽 | 久久亚洲精品国产精品紫薇 | 午夜男人天堂 | 天堂一区二区三区 | 免费观看色 | av中文字幕在线播放 | 狠狠躁夜夜躁人人爽天天高潮 | 日韩在线不卡 | 久久大陆| 不卡的av在线 | 亚洲一区二区久久 |