但是经我测试发现,这仅限于props为非数组及对象等引用类型数据,譬如字符串,数字等
如果props是对象或数组的话,在子组件内修改props的话,父组件是不会报错的。
那么要怎么解决修改props传的值而不污染父组件的值:
1,可以使用ES6提供的Object.assign({}, prop)的返回值就是一个全新的对象,操作这个新对象不会影响旧对象。如果不用ES6就自己递归实现拷贝器
2,可以给对象重新赋值:(给对象里的每一项重新赋值)
主要是模块化开发的时候,页面分成了若干模块,你可以想像一下,父组件就是袋子,装这些小模块,而这些小模块就是子组件。同时这个概念也是相对的,因为袋子里面可能又装了一个小袋子,而这个小袋子相对它里面的模块,同样也是父子组件。
然后子组件可以自己定义一些事件,通用的信息,无关父组件,基本可以随意引用。