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 相关文章推荐
对采用动态原型方式无法展示继承机制得思考
Dec 04 Javascript
基于mootools 1.3框架下的图片滑动效果代码
Apr 22 Javascript
jquery实现table鼠标经过变色代码
Sep 25 Javascript
jquery live()重复绑定的解决方法介绍
Jan 03 Javascript
JS Attribute属性操作详解
May 19 Javascript
使用json来定义函数,在里面可以定义多个函数的实现方法
Oct 28 Javascript
详解从Node.js的child_process模块来学习父子进程之间的通信
Mar 27 Javascript
Angular实现的敏感文字自动过滤与提示功能示例
Dec 29 Javascript
jquery写出PC端轮播图实例
Jan 26 jQuery
vue自定义全局共用函数详解
Sep 18 Javascript
小程序封装路由文件和路由方法(5种全解析)
May 26 Javascript
详解Nuxt.js中使用Element-UI填坑
Sep 06 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调用Twitter的RSS的实现代码
2010/03/10 PHP
删除无限分类并同时删除它下面的所有子分类的方法
2010/08/08 PHP
php正则替换处理HTML页面的方法
2015/06/17 PHP
PHP验证码生成原理和实现
2016/01/24 PHP
Javascript级联下拉菜单以及AJAX数据验证核心代码
2013/05/10 Javascript
javasciprt下jquery函数$.post执行无响应的解决方法
2014/03/13 Javascript
NodeJs基本语法和类型
2015/02/13 NodeJs
jQuery过滤HTML标签并高亮显示关键字的方法
2015/08/07 Javascript
Javascript OOP之面向对象
2016/07/31 Javascript
用AngularJS的指令实现tabs切换效果
2016/08/31 Javascript
JavaScript数组操作详解
2017/02/04 Javascript
JavaScript实现树的遍历算法示例【广度优先与深度优先】
2017/10/26 Javascript
nodejs使用http模块发送get与post请求的方法示例
2018/01/08 NodeJs
jQuery 同时获取多个标签的指定内容并储存为数组
2018/11/20 jQuery
node.js监听文件变化的实现方法
2019/04/17 Javascript
js的继承方法小结(prototype、call、apply)(推荐)
2019/04/17 Javascript
深入理解redux之compose的具体应用
2020/01/12 Javascript
关于vue3.0中的this.$router.replace({ path: '/'})刷新无效果问题
2020/01/16 Javascript
js 闭包深入理解与实例分析
2020/03/19 Javascript
nestjs返回给前端数据格式的封装实现
2021/02/22 Javascript
python显示天气预报
2014/03/02 Python
Python代码的打包与发布详解
2014/07/30 Python
python实现颜色空间转换程序(Tkinter)
2015/12/31 Python
在Python中通过threading模块定义和调用线程的方法
2016/07/12 Python
浅析python协程相关概念
2018/01/20 Python
对sklearn的使用之数据集的拆分与训练详解(python3.6)
2018/12/14 Python
Python查找文件中包含中文的行方法
2018/12/19 Python
利用Python查看微信共同好友功能的实现代码
2019/04/24 Python
python读取目录下所有的jpg文件,并显示第一张图片的示例
2019/06/13 Python
python ctypes库2_指定参数类型和返回类型详解
2019/11/19 Python
诺心蛋糕官网:LE CAKE
2018/08/25 全球购物
数学与统计学院学生个人职业生涯规划书
2014/02/10 职场文书
书法社团活动总结
2015/05/07 职场文书
学习经验交流会总结
2015/11/02 职场文书
Oracle 区块链表创建过程详解
2021/05/15 Oracle
Python Pandas常用函数方法总结
2021/06/15 Python