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 相关文章推荐
jquery 表格分页等操作实现代码(pagedown,pageup)
Apr 11 Javascript
用jquery和json从后台获得数据集的代码
Nov 07 Javascript
window.open不被拦截的实现代码
Aug 22 Javascript
鼠标移到导航当前位置的LI变色处于选中状态
Aug 23 Javascript
深入理解JQuery keyUp和keyDown的区别
Dec 12 Javascript
jquery无刷新验证邮箱地址实现实例
Feb 19 Javascript
JQuery 使用attr方法实现下拉列表选中
Oct 13 Javascript
仿iframe效果Aajx文件上传实例
Nov 18 Javascript
基于JQuery的购物车添加删除以及结算功能示例
Mar 08 Javascript
js装饰设计模式学习心得
Feb 17 Javascript
node全局变量__dirname与__filename的区别
Jan 14 Javascript
element-ui封装一个Table模板组件的示例
Jan 04 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.ini-dist 和 php.ini-recommended 的区别介绍(方便开发与安全的朋友)
2012/07/01 PHP
php获取textarea的值并处理回车换行的方法
2014/10/20 PHP
基础的WordPress插件制作教程
2015/11/24 PHP
jQuery向下滚动即时加载内容实现的瀑布流效果
2016/01/07 PHP
php使用pthreads v3多线程实现抓取新浪新闻信息操作示例
2020/02/21 PHP
php操作redis常见方法示例【key与value操作】
2020/04/14 PHP
网页常用特效代码整理
2006/06/23 Javascript
javascript据option的value值快速设定初始的selected选项
2007/08/13 Javascript
js中对象的声明方式以及数组的一些用法示例
2013/12/11 Javascript
js获取某元素的class里面的css属性值代码
2014/01/16 Javascript
javascript字母大小写转换的4个函数详解
2014/05/09 Javascript
JavaScript实现班级随机点名小应用需求的具体分析
2014/05/12 Javascript
AngularJS 工作原理详解
2016/08/18 Javascript
JavaScript实现256色转灰度图
2017/02/22 Javascript
基于vue的fullpage.js单页滚动插件
2017/03/20 Javascript
JS中的数组转变成JSON格式字符串的方法
2017/05/09 Javascript
JavaScript中Object基础内部方法图
2018/02/05 Javascript
用原生 JS 实现 innerHTML 功能实例详解
2019/04/03 Javascript
小程序怎样让wx.navigateBack更好用的方法实现
2019/11/01 Javascript
vue 组件开发原理与实现方法详解
2019/11/29 Javascript
详解用js代码触发dom事件的实现方案
2020/06/10 Javascript
Python实现统计单词出现的个数
2015/05/28 Python
Python操作Word批量生成文章的方法
2015/07/28 Python
Python基于time模块求程序运行时间的方法
2017/09/18 Python
几行Python代码爬取3000+上市公司的信息
2019/01/24 Python
基于PyQt4和PySide实现输入对话框效果
2019/02/27 Python
PyQt5固定窗口大小的方法
2019/06/18 Python
python视频按帧截取图片工具
2019/07/23 Python
校园报刊亭创业计划书
2014/01/02 职场文书
财务部经理岗位职责
2014/02/03 职场文书
机械制造专业毕业生求职信
2014/03/02 职场文书
师德师风个人反思
2014/04/28 职场文书
出国留学担保书
2014/05/20 职场文书
党员干部反四风对照检查材料思想汇报
2014/09/14 职场文书
2014年“世界无车日”活动方案
2014/09/21 职场文书
师德师风事迹材料
2014/12/20 职场文书