但是经我测试发现,这仅限于props为非数组及对象等引用类型数据,譬如字符串,数字等
如果props是对象或数组的话,在子组件内修改props的话,父组件是不会报错的。
那么要怎么解决修改props传的值而不污染父组件的值:
1,可以使用ES6提供的Object.assign({}, prop)的返回值就是一个全新的对象,操作这个新对象不会影响旧对象。如果不用ES6就自己递归实现拷贝器
2,可以给对象重新赋值:(给对象里的每一项重新赋值)
子组件在props中定义数据,然后父组件传数据过去,例如:子组件:
props: {
show: {
default: false
}
}
父组件:
<test :show="parentShow"></test>//test是子组件名字
parentShow是父组件定义的data数据
组件内部声明属性名、类型和默认值等,上层组件传递属性值之后,组件内部直接使用
this.propName就跟data获取一样,但是你确保在你获取的时候,props已经传递到了组件