子组件修改父组件props传的值

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了子组件修改父组件props传的值相关的知识,希望对你有一定的参考价值。

参考技术A 方法1:子组件中自定义变量接受父组件传的值,注意要浅拷贝,通过监听修改自定义的变量的值

方法2、父组件传值的时候加上.sync修饰符,子组件使用$emit("update:xxx",xxx)

Vue.js2.0中子组件修改父组件传递过来的props,并不影响父组件的原始数据

参考技术A vue2.0中,子组件中不能修改父组件的状态,否则在控制台中会报错。
但是经我测试发现,这仅限于props为非数组及对象等引用类型数据,譬如字符串,数字等
如果props是对象或数组的话,在子组件内修改props的话,父组件是不会报错的。
那么要怎么解决修改props传的值而不污染父组件的值:
1,可以使用ES6提供的Object.assign(, prop)的返回值就是一个全新的对象,操作这个新对象不会影响旧对象。如果不用ES6就自己递归实现拷贝器
2,可以给对象重新赋值:(给对象里的每一项重新赋值)

以上是关于子组件修改父组件props传的值的主要内容,如果未能解决你的问题,请参考以下文章

vue2.0子组件修改父组件props数据的值

Vue prop传一个对象给子组件,怎么避免子组件修改数据污染父组件?

vue父组件向子组件传的值怎么放进子组件的data里面

vue子组件修改父组件属性值的两种方法

vue中子组件直接修改props,不报错

Vue 打印子组件props的值