關(guān)于Vue不能監(jiān)聽(watch)數(shù)組變化的解決方法
一、vue監(jiān)聽數(shù)組
vue實際上可以監(jiān)聽數(shù)組變化,比如
data () { return { watchArr: [], }; }, watchArr (newVal) { console.log('監(jiān)聽:' + newVal); }, created () { setTimeout(() => { this.watchArr = [1, 2, 3]; }, 1000); },
在比如使用splice(0,2,3)從數(shù)組下標0刪除兩個元素,并在下標0插入一個元素3
data () { return { watchArr: [1, 2, 3], }; }, watchArr (newVal) { console.log('監(jiān)聽:' + newVal); }, created () { setTimeout(() => { this.watchArr.splice(0, 2, 3); }, 1000); },
push數(shù)組也能夠監(jiān)聽到。
二、vue無法監(jiān)聽數(shù)組變化的情況
但是數(shù)組在下面兩種情況下無法監(jiān)聽
- 利用索引直接設(shè)置數(shù)組項時,例如arr[indexofitem]=newValue
- 修改數(shù)組的長度時,例如arr.length=newLength
舉例無法監(jiān)聽數(shù)組變化的情況
1、利用索引直接修改數(shù)組值
data () { return { watchArr: [{ name: 'krry', }], }; }, watchArr (newVal) { console.log('監(jiān)聽:' + newVal); }, created () { setTimeout(() => { this.watchArr[0].name = 'xiaoyue'; }, 1000); },
2、修改數(shù)組的長度
- 長度大于原數(shù)組就將后續(xù)元素設(shè)置為undefined
- 長度小于原數(shù)組就將多余元素截掉
data () { return { watchArr: [{ name: 'krry', }], }; }, watchArr (newVal) { console.log('監(jiān)聽:' + newVal); }, created () { setTimeout(() => { this.watchArr.length = 5; }, 1000); },
到此這篇關(guān)于關(guān)于Vue不能監(jiān)聽(watch)數(shù)組變化的文章就介紹到這了,更多相關(guān)Vue不能監(jiān)聽數(shù)組變化內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
vue中使用echarts實現(xiàn)動態(tài)數(shù)據(jù)綁定以及獲取后端接口數(shù)據(jù)
總結(jié)一下自己最近項目中用echarts動態(tài)獲取接口數(shù)據(jù)并畫圖的方法,下面這篇文章主要給大家介紹了關(guān)于vue中使用echarts實現(xiàn)動態(tài)數(shù)據(jù)綁定以及獲取后端接口數(shù)據(jù)的相關(guān)資料,需要的朋友可以參考下2022-07-07vue2+elementui上傳照片方式(el-upload超簡單)
這篇文章主要介紹了vue2+elementui上傳照片方式(el-upload超簡單),具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2024-03-03關(guān)于console.log打印結(jié)果是?[object?Object]的解決
這篇文章主要介紹了關(guān)于console.log打印結(jié)果是?[object?Object]的解決方案,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-04-04vue基于Element按鈕權(quán)限實現(xiàn)方案
這篇文章主要介紹了vue基于Element按鈕權(quán)限實現(xiàn)方案,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2021-04-04