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 相关文章推荐
音乐播放用的的几个函数
Sep 07 Javascript
xml 与javascript结合的问题解决方法
Mar 24 Javascript
Jquery中val()表单取值赋值的实例代码
Aug 15 Javascript
对js关键字命名的疑问介绍
Apr 25 Javascript
JavaScript数据结构与算法之栈详解
Mar 12 Javascript
JQuery中attr方法和removeAttr方法用法实例
May 18 Javascript
最佳的JavaScript错误处理实践
Jul 16 Javascript
原生javascript实现读写CSS样式的方法详解
Feb 20 Javascript
jquery+css实现简单的图片轮播效果
Aug 07 jQuery
Vue.js devtool插件安装后无法使用的解决办法
Nov 27 Javascript
JavaScript函数apply()和call()用法与异同分析
Aug 10 Javascript
webpack dll打包重复问题优化的解决
Oct 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
php调用方法mssql_fetch_row、mssql_fetch_array、mssql_fetch_assoc和mssql_fetch_objcect读取数据的区别
2012/08/08 PHP
PHP基于文件存储实现缓存的方法
2015/07/20 PHP
php+ajax登录跳转登录实现思路
2016/07/31 PHP
thinkPHP引入类的方法详解
2016/12/08 PHP
javascript AutoScroller 函数类
2009/05/29 Javascript
JavaScript toFixed() 方法
2010/04/15 Javascript
读jQuery之一(对象的组成)
2011/06/11 Javascript
jQuery ajax 路由和过滤器使用说明
2011/08/02 Javascript
Javascript中Array用法实例分析
2015/06/13 Javascript
jquery $.trim()去除字符串空格的实现方法【附图例】
2016/03/30 Javascript
JS点击某个图标或按钮弹出文件选择框的实现代码
2016/09/27 Javascript
Bootstrap实现导航栏的2种方式
2016/11/28 Javascript
JavaScript、C# URL编码、解码总结
2017/01/21 Javascript
JavaScript常见JSON操作实例分析
2018/08/08 Javascript
Electron 调用命令行(cmd)
2019/09/23 Javascript
[04:13]2014DOTA2国际邀请赛 专访DC目前形势不容乐观
2014/07/12 DOTA
[48:48]VGJ.T vs Liquid 2018国际邀请赛小组赛BO2 第二场 8.19
2018/08/21 DOTA
[01:33]完美世界DOTA2联赛PWL S3 集锦第二期
2020/12/21 DOTA
轻松掌握python设计模式之策略模式
2016/11/18 Python
Python编程实现微信企业号文本消息推送功能示例
2017/08/21 Python
Python中pandas模块DataFrame创建方法示例
2018/06/20 Python
python os.listdir按文件存取时间顺序列出目录的实例
2018/10/21 Python
详解用pyecharts Geo实现动态数据热力图城市找不到问题解决
2019/06/26 Python
Flask框架学习笔记之路由和反向路由详解【图文与实例】
2019/08/12 Python
python绘制动态曲线教程
2020/02/24 Python
纯html5+css3下拉导航菜单实现代码
2013/03/18 HTML / CSS
Jo Malone美国官网:祖玛珑香水
2017/03/27 全球购物
买卖正宗运动鞋:GOAT
2019/12/06 全球购物
质量工程师岗位职责
2013/11/16 职场文书
小学生三分钟演讲稿
2014/08/18 职场文书
社区敬老月活动总结
2015/05/07 职场文书
借条格式范本
2015/05/25 职场文书
乡镇干部学习心得体会
2016/01/23 职场文书
oracle覆盖导入dmp文件的2种方法
2021/05/21 Oracle
使用jpa之动态插入与修改(重写save)
2021/11/23 Java/Android
spring IOC容器的Bean管理XML自动装配过程
2022/05/30 Java/Android