vue引用传递——赋值后,新变量数据改变,原变量的数据也随之改变了
现象:
updateQuery的值发生变化时,this.updateForm的值也随之改变了。
本来需要的是this.updateForm的值始终不变,只有updateQuery的值在变化。
1 let updateQuery = this.updateForm 2 console.log(this.updateForm.status) // 1 3 updateQuery.status = 0 4 console.log(this.updateForm.status) // 0
原因:
在vue中,数组和对象传递都是引用传递。赋值时传递的并不是值,而是指向了同一个空间。
解决:
方法一
JSON.stringify 将一个 JavaScript 值(对象或者数组)转换为一个 JSON 字符串
JSON.parse 用来解析 JSON 字符串,将数据转换为 JavaScript(对象或者数组)
1 let updateQuery = JSON.parse(JSON.stringify(this.updateForm))
方法二
es6的扩展运算符(...)
对象中的扩展运算符(...)用于取出参数对象中的所有可遍历属性,拷贝到当前对象之中
1 let updateQuery = { ...this.updateForm }
https://blog.csdn.net/peng_da818/article/details/123003337
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY