求VUE3中,子组件修改props会影响父组件的解决方法?

新手上路,请多包涵

解决思路是深拷贝,但不知道大家有是怎么做的,蹲一个优雅实践!
VUE2的时候官方示例是用计算属性来解决,但是我在VUE3中这样做:

const childredObj = ref(computed(() => {return props.fatherObj}))

子组件修改childredObj还是会影响到父组件里fatherObj的值!
直接这么写也不行:

const childredObj = ref(props.fatherObj})

有效的办法是JSON.parse(JSON.stringfy(props.fatherObj)),但感觉不够优雅。。。
或者直接写个deep copy的方法拿来用?不知道VUE3有没有提供官方解决方法?

回复
阅读 1k
5 个回答

lodash .cloneDeep

vue2 大概率也是不行的。。(PS:最近问题太多了, 你可以往上翻一下,有个vue2计算属性被改值了)

这种只能深拷贝。

本文参与了SegmentFault 思否面试闯关挑战赛,欢迎正在阅读的你也加入。

计算属性得出的值你就不要想着去修改就行了,所有计算属性的修改都应该修改依赖的值。依赖的值来自父组件传过来的就使用事件去传递值再修改

推荐问题
宣传栏