vue 避免变量赋值后双向绑定的操作


Posted in Javascript onNovember 07, 2020

如: this.list = this.list2, 结果在list改变后 list2也改变,这不是我们想要的效果

第一种:

利用 JSON.parse 和 JSON.stringify

this.list= JSON.parse( JSON.stringify(this.list2) )

第二种:

ES6 的解析语法

this.list= { ...this.list2}

this.arr= [...this.arr2]

补充知识:解决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 }

以上这篇vue 避免变量赋值后双向绑定的操作就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
从新浪弄下来的全屏广告代码 与使用说明
Mar 15 Javascript
JavaScript通过prototype给对象定义属性用法实例
Mar 23 Javascript
EasyUi combotree 实现动态加载树节点
Apr 01 Javascript
JavaScript常用字符串与数组扩展函数小结
Apr 24 Javascript
改变checkbox默认选中状态及取值的实现代码
May 26 Javascript
JavaScript中push(),join() 函数 实例详解
Sep 06 Javascript
详解jQuery简单的表单应用
Dec 16 Javascript
实例讲解DataTables固定表格宽度(设置横向滚动条)
Jul 11 Javascript
jQuery中ajax获取数据赋值给页面的实例
Dec 31 jQuery
node.js express框架简介与实现
Jul 23 Javascript
JavaScript装箱及拆箱boxing及unBoxing用法解析
Jun 15 Javascript
js实现随机圆与矩形功能
Oct 29 Javascript
浅谈Vue static 静态资源路径 和 style问题
Nov 07 #Javascript
解决VueCil代理本地proxytable无效报错404的问题
Nov 07 #Javascript
Nuxt 项目性能优化调研分析
Nov 07 #Javascript
js实现日历
Nov 07 #Javascript
工作中常用js功能汇总
Nov 07 #Javascript
解决VUE 在IE下出现ReferenceError: Promise未定义的问题
Nov 07 #Javascript
解决Element中el-date-picker组件不回填的情况
Nov 07 #Javascript
You might like
php建立Ftp连接的方法
2015/03/07 PHP
escape、encodeURI、encodeURIComponent等方法的区别比较
2006/12/27 Javascript
JQery 渐变图片导航效果代码 漂亮
2010/01/01 Javascript
js下关于onmouseout、事件冒泡的问题经验小结
2010/12/09 Javascript
JavaScript调试工具汇总
2014/12/23 Javascript
JavaScript DSL 流畅接口(使用链式调用)实例
2015/03/15 Javascript
js实现仿网易点击弹出提示同时背景变暗效果
2015/08/13 Javascript
一道JS前端闭包面试题解析
2015/12/25 Javascript
jQuery原理系列-常用Dom操作详解
2016/06/07 Javascript
JavaScript实现页面定时刷新(定时器,meta)
2016/10/12 Javascript
JS实用的带停顿的逐行文本循环滚动效果实例
2016/11/23 Javascript
BootStrap fileinput.js文件上传组件实例代码
2017/02/20 Javascript
20行JS代码实现网页刮刮乐效果
2017/06/23 Javascript
详解react-redux插件入门
2018/04/19 Javascript
JS实现简单的星期格式转换功能示例
2018/07/23 Javascript
js实现图片放大并跟随鼠标移动特效
2019/01/18 Javascript
JavaScript实现图片轮播特效
2019/10/23 Javascript
小程序富文本提取图片可放大缩小
2020/05/26 Javascript
IDEA配置jQuery, $符号不再显示黄色波浪线的问题
2020/10/09 jQuery
[38:39]KG vs Mineski 2019国际邀请赛小组赛 BO2 第一场 8.15
2019/08/16 DOTA
Python六大开源框架对比
2015/10/19 Python
python编写简易聊天室实现局域网内聊天功能
2018/07/28 Python
利用python脚本如何简化jar操作命令
2019/02/24 Python
Python 给下载文件显示进度条和下载时间的实现
2020/04/02 Python
Python高并发解决方案实现过程详解
2020/07/31 Python
2021年值得向Python开发者推荐的VS Code扩展插件
2021/01/25 Python
英国知名奢侈品包包品牌:Milli Millu
2016/12/22 全球购物
Famous Footwear加拿大:美国多品牌运动休闲鞋店
2018/12/05 全球购物
自荐书格式
2013/12/01 职场文书
可口可乐广告词
2014/03/20 职场文书
优秀教师先进材料
2014/12/16 职场文书
三方协议书
2015/01/27 职场文书
国庆节新闻稿
2015/07/17 职场文书
高中信息技术教学反思
2016/02/16 职场文书
Java使用JMeter进行高并发测试
2021/11/23 Java/Android
解决Oracle数据库用户密码过期
2022/05/11 Oracle