当前位置: 首页 > news >正文

解决vue中v-model绑定的变量赋值给了另一个变量后,两个变量同时改变

先来看一下问题背景
我们要做一个 搜索+分页 的功能,使用vue

我们将分页控件绑定了点击事件,点击后提交v-model绑定的formData表单,但是我们忽略了一个问题,就是当输入的信息改变的情况下,不点击搜索,直接点击分页控件,提交的将会是新现在搜索框中的搜索条件。这样就不和逻辑了。

于是我们在data中新加了一个表单的对象 submitForm,只有在点击 查询 的时候,v-model绑定的 formData 表单才会赋值给这个对象,而翻页的时候提交的是 submitForm 。这样就解决了这个问题。

data() { return { formData: { timeStart: '', timeEnd: '', // 分页数据 pageNo: 1, pageSize: 10 }, submitForm: { timeStart: '', timeEnd: '', // 分页数据 pageNo: 1, pageSize: 10 }, } this.submitForm = this.formData // 用 new也是一样达不到效果 this.submitForm = new Object(this.formData)

但是!!!

submitForm 竟然跟着变了

这是因为在Object赋值的时候,传递的不是值,而是引用,他们指向了同一个空间!

解决
第一种:利用 JSON.parse 和 JSON.stringify

this.submitForm = JSON.parse( JSON.stringify(this.formData) )

第二种:ES6 的解析语法

this.submitForm = { ...this.formData }
http://www.jsqmd.com/news/1281153/

相关文章:

  • 物联网设备安全芯片SE050与PIC18F4585集成方案
  • 垃圾收集
  • Blender贝塞尔曲线终极插件:从新手到高手的完整指南
  • 物联网设备低功耗优化:NBM7100A与GD32VF103VBT6实战
  • d2s-editor:暗黑破坏神2存档编辑器的革命性开源工具深度探索
  • 超强盘点!2026年适配各学科的AI论文工具,精准输出不套壳
  • 苏州全案设计品牌,辐射常熟、无锡、上海 - 十大品牌排行榜
  • css3文本设置:
  • Minecraft世界瘦身神器:3步教你用MCA Selector释放数十GB硬盘空间
  • Agent 架构怎么选?
  • CPO-RBF分类算法:优化RBF神经网络的故障检测方法
  • AI 性能平台选型对比:Prometheus vs VictoriaMetrics vs Grafana Cloud 在推理监控场景的评估
  • 业务实现中的本地缓存(GO)
  • 滑稽树下你和我-树形dp-吉首大学2019年程序设计竞赛
  • three.js 编辑器的 Roadmap 与规划
  • 计算机毕业设计之基于Springboot的高校实验室设备故障报修系统设计与实现
  • CCF-CSP 201809-1 卖菜
  • 实测揭秘!2026 年适配多学科的 AI 论文写作工具究竟有哪些
  • QQ空间说说备份:一键导出你的青春记忆
  • 计算机毕业设计之基于SpringBoot的高校晒衣服交流系统的设计与实现
  • GetQzonehistory:如何轻松备份你的QQ空间历史说说完整指南
  • excel 宏 把一个工作表按照某几个列拆分为多个工作表
  • B站视频下载终极指南:BilibiliDown跨平台免费下载器完全教程
  • 3步实现Mac百度网盘极速下载:告别龟速下载的终极方案
  • 终极指南:如何用免费工具VR-Reversal在普通设备上播放VR视频
  • 免费备份QQ空间历史说说:GetQzonehistory完整指南
  • NBM7100A与PIC18LF4553的低功耗电源管理方案
  • 2026年沈阳电线电缆回收企业盘点 圣兴再生资源回收服务及行业要点梳理 - 浩了个浩
  • 研究生论文AIGC检测挑战与千笔降AI率工具解析
  • C#转C++实战:内存管理、RAII与面向对象编程核心差异解析