Vue3 无法在子组件中直接修改父传子复杂数据类型的属性

216 阅读1分钟
在父子通信中,不管是vue2还是vue3都没办法在子组件中直接修改父组件传过来的普通数据类型

vue2是通过this.$emits('事件名', 参数)来通知父组件修改

vue3则通过defineEmits拿到emit对象,再通知父组件修改

但是在vue2中可以直接在子组件中修改复杂数据类型的属性,vue3中修改的话会报错

image.png

解决办法就是声明另一个变量,然后将data的引用地址赋值给新变量,这样既能修改data中的值,也不会报错