vue2.0中子组件会修改props初始值

1.我用父组件向子组件传了一个props是一个数组,然后子组件中把props赋值给子组件中的data,然后修改data的时候,props竟然变了

2.https://img.mukewang.com/5be92b480001526702890303.jpg

concat也试了,不行,用concat赋值完后比较子组件的list和props的initlist是false,但改变list后,props的initlist任然会变得和list一样

还有可能就是我数组中的元素是对象,虽然数组的指向不一样了,但其中的对象的指向还没改变

找到答案竟然不能自问自答,原因和上面说的一样,我的数组里面是对象,虽然数组指向变了,但里面的对象的指向还是相同的。改变赋值后的数组里面对象的值,初始数组里面对象的值一样会改变。解决方法就是把初始数组里面的对象属性进行深层拷贝


慕田峪7331174
浏览 512回答 1
1回答

一只萌萌小番薯

感觉这个地方设计的有点问题,如果父组件传过来的不是一个对象或者数组(比如说是单纯的字符串或者是数字)由于数据类型是基本类型而并非引用类型而导致不能修改,而传入的是一个完整对象的时候由于是引用类型他是可修改的,那如果我不希望这个值被修改这样的传值无形中增加了父子组件的耦合有什么办法可以传入对象让子组件无法修改,或者传入字符串让之组件可以修改
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript