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 相关文章推荐
javascript中的继承实例代码
Apr 27 Javascript
精心挑选的15个jQuery下拉菜单制作教程
Jun 15 Javascript
LABjs、RequireJS、SeaJS的区别
Mar 04 Javascript
jQuery中odd选择器的定义和用法
Dec 23 Javascript
angularjs基础教程
Dec 25 Javascript
JS实现鼠标滑过折叠与展开菜单效果代码
Sep 06 Javascript
微信小程序  action-sheet详解及实例代码
Nov 09 Javascript
vue-cli下的vuex的简单Demo图解(实现加1减1操作)
Feb 26 Javascript
vue与bootstrap实现简单用户信息添加删除功能
Feb 15 Javascript
js new Date()实例测试
Oct 31 Javascript
微信小程序点击按钮动态切换input的disabled禁用/启用状态功能
Mar 07 Javascript
vue使用watch监听属性变化
Apr 30 Vue.js
浅谈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下过滤html代码的函数 提高程序安全性
2010/03/02 PHP
PHP图片库imagemagick安装方法
2014/09/23 PHP
js禁止页面复制功能禁用页面右键菜单示例代码
2013/08/29 Javascript
js实现瀑布流的一种简单方法实例分享
2013/11/04 Javascript
jquery ajax传递中文参数乱码问题及解决方法说明
2014/02/07 Javascript
JQuery EasyUI的使用
2016/02/24 Javascript
jQuery 3 中的新增功能汇总介绍
2016/06/12 Javascript
JavaScript中清空数组的三种方式
2017/03/22 Javascript
JS装饰器函数用法总结
2018/04/21 Javascript
vue头部导航动态点击处理方法
2018/11/02 Javascript
详解vue引入子组件方法
2019/02/12 Javascript
python 基础学习第二弹 类属性和实例属性
2012/08/27 Python
python实现将pvr格式转换成pvr.ccz的方法
2015/04/28 Python
Python实现购物程序思路及代码
2017/07/24 Python
Python Pywavelet 小波阈值实例
2019/01/09 Python
解决安装python3.7.4报错Can''t connect to HTTPS URL because the SSL module is not available
2019/07/31 Python
Python随机函数库random的使用方法详解
2019/08/21 Python
python 单线程和异步协程工作方式解析
2019/09/28 Python
python函数不定长参数使用方法解析
2019/12/14 Python
Pytorch模型迁移和迁移学习,导入部分模型参数的操作
2021/03/03 Python
使用canvas对多图片拼合并导出图片的方法
2018/08/28 HTML / CSS
天巡全球:Skyscanner Global
2017/06/20 全球购物
金牌葡萄酒俱乐部:Gold Medal Wine Club
2017/11/02 全球购物
来自世界上最好大学的在线课程:edX
2018/10/16 全球购物
Zavvi西班牙:电子游戏、极客服装、Blu-ray、Funko Pop等
2019/05/03 全球购物
大学生毕业自我鉴定范文
2013/09/19 职场文书
国际政治个人自荐信范文
2013/11/26 职场文书
检察机关个人对照检查材料
2014/09/15 职场文书
法人代表身份证明书及授权委托书
2014/09/16 职场文书
2014派出所所长群众路线对照检查材料思想汇报
2014/09/18 职场文书
2014年预备党员群众路线教育实践活动对照检查材料思想汇报
2014/10/02 职场文书
幼儿园教师教育随笔
2015/08/14 职场文书
解决numpy数组互换两行及赋值的问题
2021/04/17 Python
css背景和边框标签实例详解
2021/05/21 HTML / CSS
《王国之心》迎来了发售的20周年, 野村哲发布贺图
2022/04/11 其他游戏
大脑的记忆过程在做数据压缩,不同图形也有共同的记忆格式
2022/04/29 数码科技