Vue3 關於子組件修改父組件屬性的疑惑


我們知道,子組件通過 prop 接收父組件的傳值,而且子組件也是禁止直接通過 prop 修改父組件的值。

但在 Vue3 中,這個限制似乎被 toRef 打破了。

假設父組件傳下面的對象給子組件

{
  list: []
}

在 Vue3 的子組件里,如果通過下面的代碼修改,會警告

export default defineComponent({
  props: {
    params: Object
  },
  setup(props) {
    props.params.list.push(1) // 會警告,但依然能生效
  }
})

但通過下面的方法修改,就能消除警告

export default defineComponent({
  props: {
    params: Object
  },
  setup(props) {
    const list = toRef(props.params, 'list')
    list.push(1) // 沒有警告了,依然生效
  }
})


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



猜您在找 vue3 父組件調用子組件 方法和屬性 子組件 修改父組件的屬性值 vue—子組件修改父組件的值 vue3