[英](VueJS v3) How would I watch for array mutations (inserted, removed, replaced) of an reactive array?
如何查看反應數組,以便知道在調用push()
、 splice()
等時插入、刪除和替換了什么?
由於splice
等不直接為數組分配新值,因此 Vue 的反應性系統不會接受更改,並且觀察者不會觸發。
但是,您可以創建一個復制數組的計算對象,然后觀察:
computed: {
myArray() {
return this.my_array.slice();
},
},
data() {
return {
my_array: [],
};
},
watch: {
myArray(newArray, oldArray) {
// do stuff
},
},
在 Vue3 上,您可以在腳本上執行此操作
<script setup>
watchEffect(() => { console.log(nameOfYourArray)})
</script>
或者在帶有選項 API 的 Vue 2 和 Vue3 上
Watch: {
nameofYourArray: {
deep: true,
immediate:true,
handler(newVal,oldVal){
console.log(newVal)
}
}
}
如果您使用 2 個解決方案,請不要忘記添加 deep 否則它將不適用於子數組
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.