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

作者站长头像
站长
· 阅读数 5

解决思路是深拷贝,但不知道大家有是怎么做的,蹲一个优雅实践!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有没有提供官方解决方法?

回复
1个回答
avatar
test
2024-07-07

似乎只能深拷贝,但 JSON.parse 和 JSON.stringfy 的方式具有缺陷,要注意。

本文参与了SegmentFault 思否面试闯关挑战赛,欢迎正在阅读的你也加入。
回复
likes
适合作为回答的
  • 经过验证的有效解决办法
  • 自己的经验指引,对解决问题有帮助
  • 遵循 Markdown 语法排版,代码语义正确
不该作为回答的
  • 询问内容细节或回复楼层
  • 与题目无关的内容
  • “赞”“顶”“同问”“看手册”“解决了没”等毫无意义的内容