vue3中, 将A赋值给B,然后修改A, B也会跟着修改吗?

const myOptionalList = ref([])

const currentOptional = reactive({
  red: [],
  blue: []
})

const handleChange = () => {
    myOptionalList.value = [currentOptional, ...myOptionalList.value]
    // myOptionalList.value = JSON.parse(JSON.stringify([currentOptional, ...myOptionalList.value]))
    currentOptional.red = []
    currentOptional.blue = []
}

在vue3中, 如果我按上面的写法,将currentOptional赋值到了myOptionalList中后, 清空currentOptional,发现myOptionalList也会被清空

我知道这是引用传递的问题,解决方法是进行深拷贝, 但是我有点疑惑,我记得vue2中好像不存在这种问题啊, 是我记错了吗

阅读 2.4k
2 个回答

你拷贝的是数组,数组的引用并没有解除。需要单独解构currentOptional中的每一个值是数组的属性。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
logo
Microsoft
子站问答
访问
宣传栏