在vue开发过程中,遇到一下问题,在父组件中将一个对象传递给子组件,子组件使用 props 接收,然尔在修改子组件的值时,发现父组件的值也变了,变成了子组件修改后的值,在某个功能开发中这种效果不是想要的。
按说在 vue 中需要遵循单向数据流原则,props 是单项绑定的,当父组件的属性变化时,会传给子组件,但是子组件原则上是不可以修改传过来的值的。这是为了防止子组件无意修改了父组件的状态。但是在某些情况下,子组件是能修改父组件的值的。
props 的类型为基本数据类型时,子组件不能改变父组件的值
props 的类型为引用数据类型时,子组件是可以改变父组件的值的
1、单独(基本数据类型)赋值,不赋值对象(引用数据类型)
2、使用JSON.parse(JSON.stringify(data)) 处理数据
3、其他深拷贝方法处理数据
1、基础类型:Number(数字)、String(字符串)、Boolean(布尔)、Date(日期)、Array(数组)、Object(基础对象)。
2、其他类型:Function(方法)、Symbol(属性)。
BaiqiCMS工作室专注各类企业网站建设,小程序开发,提供高品质的企业网站制作和小程序开发,为企业客户提供一站式网站解决方案。