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 相关文章推荐
setAttribute 与 class冲突解决
Feb 17 Javascript
js window.onload 加载多个函数的方法
Nov 02 Javascript
Js 刷新框架页的代码
Apr 13 Javascript
js+xml生成级联下拉框代码
Jul 24 Javascript
以Python代码实例展示kNN算法的实际运用
Oct 26 Javascript
解决Mac安装thrift因bison报错的问题
May 17 Javascript
小程序二次贝塞尔曲线实现购物车商品曲线飞入效果
Jan 07 Javascript
vue里如何主动销毁keep-alive缓存的组件
Mar 21 Javascript
深度了解vue.js中hooks的相关知识
Jun 14 Javascript
layui监听select变化,以及设置radio选中的方法
Sep 24 Javascript
js实现简单掷骰子效果
Oct 24 Javascript
微信小程序实现注册登录功能(表单校验、错误提示)
Dec 10 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
Apache2 httpd.conf 中文版
2006/11/17 PHP
php中计算中文字符串长度、截取中文字符串的函数代码
2011/08/09 PHP
php遍历类中包含的所有元素的方法
2015/05/12 PHP
PHP执行shell脚本运行程序不产生core文件的方法
2016/12/28 PHP
PHP中TP5 上传文件的实例详解
2017/07/31 PHP
php中file_get_contents()函数用法实例
2019/02/21 PHP
PHP常用header头定义代码示例汇总
2020/08/29 PHP
Raphael一个用于在网页中绘制矢量图形的Javascript库
2013/01/08 Javascript
jquery果冻抖动效果实现方法
2015/01/15 Javascript
Node.js的项目构建工具Grunt的安装与配置教程
2016/05/12 Javascript
教你一步步用jQyery实现轮播器
2016/12/18 Javascript
JS中的phototype详解
2017/02/04 Javascript
基于es6三点运算符的使用方法(实例讲解)
2017/10/12 Javascript
vue.js template模板的使用(仿饿了么布局)
2018/08/13 Javascript
Vue.js 实现地址管理页面思路详解(地址添加、编辑、删除和设置默认地址)
2019/12/11 Javascript
bootstrapValidator表单校验、更改状态、新增、移除校验字段的实例代码
2020/05/19 Javascript
vue cli 3.0通用打包配置代码,不分一二级目录
2020/09/02 Javascript
js实现三角形粒子运动
2020/09/22 Javascript
Python使用PyGreSQL操作PostgreSQL数据库教程
2014/07/30 Python
跟老齐学Python之折腾一下目录
2014/10/24 Python
Python中条件判断语句的简单使用方法
2015/08/21 Python
图文讲解选择排序算法的原理及在Python中的实现
2016/05/04 Python
使用Python读取安卓手机的屏幕分辨率方法
2018/03/31 Python
Pytorch之parameters的使用
2019/12/31 Python
HTML5 实现图片上传预处理功能
2020/02/06 HTML / CSS
美国时尚在线:Showpo
2017/09/08 全球购物
世界上最伟大的马产品:Equiderma
2020/01/07 全球购物
MediaMarkt比利时:欧洲最大电器连锁店
2020/12/21 全球购物
公交公司毕业生求职信
2014/02/15 职场文书
《路旁的橡树》教学反思
2014/04/07 职场文书
《窗前的气球》教学反思
2014/04/07 职场文书
关爱老人标语
2014/06/21 职场文书
找工作求职信
2014/07/07 职场文书
学校运动会广播稿
2014/10/11 职场文书
亚布力滑雪场导游词
2015/02/09 职场文书
导游词之广西漓江
2019/11/02 职场文书