1. 由于父組件更新了props里面的值, 但是子組件第一次接收后再修改沒有監聽到. 父組件修改值的時候使用this$set解決問題.
在 Vue 2 中,this.$set
通常用于更新數組中的特定元素。如果你想更新整個數組,可以直接賦值一個新的數組,或者你可以使用 Vue.set
或 this.$set
來更新數組的引用。下面是具體的步驟和示例:
this.$set(this, 'items', newArray)
示例代碼
假設你有一個 Vue 組件,其中 items
是一個數組,你想更新這個數組:
<template><div><ul><li v-for="item in items" :key="item.id">{{ item.name }}</li></ul><button @click="updateItems">Update Items</button></div>
</template><script>
export default {data() {return {items: [{ id: 1, name: 'Item 1' },{ id: 2, name: 'Item 2' }]}},methods: {updateItems() {// 新的數組const newArray = [{ id: 3, name: 'Item 3' },{ id: 4, name: 'Item 4' }]// 方法一:直接賦值this.items = newArray// 方法二:使用 this.$set 更新數組引用// this.$set(this, 'items', newArray)}}
}
</script>
傳入this, 'items'為this的屬性