浅谈vue 多个变量同时赋相同值互相影响


Posted in Javascript onAugust 05, 2020

首先,该项目用到了element-ui中的Tabs 标签;然后来龙去脉是酱紫的:

一个项目中需动态渲染一个列表billItemLIsts,列表中包含n组小列表,其中小列表的state_pj用于改变该小列表中的radio,于是:

<el-tabs tab-position="left" style="max-height:280px;">
  <el-tab-pane v-for="(itema,index) in billItemLIsts" :key="itema.id" :label="itema.title" :value="itema.id">
  <ul class="bill_set_ul">
  <li v-for="(subitem,subindex) in itema.item" :key="subitem.id" :label="subitem.title" :value="subitem.id">
  <div class="el-form-item__label">{{subitem.title}}:</div>
  <div class="el-form-item__content" style="width:200px;margin-left: 100px;">
   <el-radio-group v-model="subitem.state_pj" @change="changeSub(index,subindex)">
   <el-radio :label="chargeIs">计费</el-radio>
   <el-radio :label="chargeNo">不计费</el-radio>
   </el-radio-group>
  </div>
  </li>
  </ul>
  </el-tab-pane>
 </el-tabs>

那么现在列表效果达到了,然鹅这个tab得放到dialog中,且存在取消与确定操作,确定时不用多说,取消时改变了的radio是不会自己变成我们想要的样子,于是乎:

//最终的收费设置数据
billItemLIsts: [], 
 //最终原始的收费设置数据
billItemLIstsOriginal: [],

没错现在billItemLIsts就可以随之怎么操作,因为我们有billItemLIstsOriginal记住了他最初的样子;

接下来就是付诸实际了:

// 取消修改收费设置
cancleChargeSet() {
 this.billItemLIsts = this.billItemLIstsOriginal; 
 if(!this.chargeOpenIs){
 this.chargingFunIs = 1;
 }
  
},

然并卵…

百思不得其解,他并没有发挥自己的作用

这是因为在Object赋值的时候,传递的不是值,而是引用,他们指向了同一个空间!

搞清楚了原因就好下手啦

解决:

1.this.billItemLIsts = JSON.parse( JSON.stringify(this.billItemLIstsOriginal) );

2.或使用 ES6 的解析语法 this.billItemLIsts = { ...this.billItemLIstsOriginal }

补充知识:VUE(ES6) 导出变量、常量,方法

在lib.js文件中, 使用 export{接口} 导出接口, 大括号中的接口名字为上面定义的变量, import和export是对应的;

//lib.js 文件
let bar = "stringBar";
let foo = "stringFoo";

let fn0 = function() {
 console.log("fn0");
};
let fn1 = function() {
 console.log("fn1");
};
export{ bar , foo, fn0, fn1}

//main.js文件
import {bar,foo, fn0, fn1} from "./lib";
console.log(bar+"_"+foo);
fn0();
fn1();

以上这篇浅谈vue 多个变量同时赋相同值互相影响就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
setInterval 和 setTimeout会产生内存溢出
Feb 15 Javascript
javascript Excel操作知识点
Apr 24 Javascript
js兼容火狐获取图片宽和高的方法
May 21 Javascript
Bootstrap每天必学之导航条
Nov 27 Javascript
jQuery鼠标悬浮链接弹出跟随图片实例代码
Jan 08 Javascript
JavaScript 对象字面量讲解
Jun 06 Javascript
原生的强大DOM选择器querySelector介绍
Dec 21 Javascript
JavaScript中为事件指定处理程序的五种方式分析
Jul 27 Javascript
解决Angular2 router.navigate刷新页面的问题
Aug 31 Javascript
jQuery+PHP+Ajax实现动态数字统计展示功能
Dec 25 jQuery
使用Vue 自定义文件选择器组件的实例代码
Mar 04 Javascript
vue实现滚动鼠标滚轮切换页面
Dec 13 Vue.js
Vue的v-model的几种修饰符.lazy,.number和.trim的用法说明
Aug 05 #Javascript
vue实现在进行增删改操作后刷新页面
Aug 05 #Javascript
vue 限制input只能输入正数的操作
Aug 05 #Javascript
vue:el-input输入时限制输入的类型操作
Aug 05 #Javascript
vue data变量相互赋值后被实时同步的解决步骤
Aug 05 #Javascript
Vue执行方法,方法获取data值,设置data值,方法传值操作
Aug 05 #Javascript
vue 需求 data中的数据之间的调用操作
Aug 05 #Javascript
You might like
PHP可逆加密/解密函数分享
2012/09/25 PHP
php封装的mysqli类完整实例
2016/10/18 PHP
实例化php类时传参的方法分析
2020/06/05 PHP
PHP时间类完整代码实例
2021/02/26 PHP
Nigma vs Alliance BO5 第二场2.14
2021/03/10 DOTA
jQuery删除节点的三个方法即remove()detach()和empty()
2013/12/27 Javascript
[原创]推荐10款最热门jQuery UI框架
2014/08/19 Javascript
JavaScript获取鼠标移动时的坐标(兼容IE8、chome谷歌、Firefox)
2014/09/13 Javascript
兼容主流浏览器的jQuery+CSS 实现遮罩层的简单代码
2014/10/14 Javascript
jQuery中prepend()方法使用详解
2015/08/11 Javascript
JavaScript匿名函数之模仿块级作用域
2015/12/12 Javascript
用自定义图片代替原生checkbox实现全选,删除以及提交的方法
2016/10/18 Javascript
Node.js用readline模块实现输入输出
2016/12/16 Javascript
基于JavaScript实现窗口拖动效果
2017/01/18 Javascript
vue数字类型过滤器的示例代码
2017/09/07 Javascript
vue实现商城上货组件简易版
2017/11/27 Javascript
JavaScript对象拷贝与赋值操作实例分析
2018/12/10 Javascript
python正则表达式之作业计算器
2016/03/18 Python
Flask的图形化管理界面搭建框架Flask-Admin的使用教程
2016/06/13 Python
Python实现爬虫设置代理IP和伪装成浏览器的方法分享
2018/05/07 Python
django manage.py扩展自定义命令方法
2018/05/27 Python
Python使用正则实现计算字符串算式
2019/12/29 Python
Python3爬虫关于识别检验滑动验证码的实例
2020/07/30 Python
python中round函数保留两位小数的方法
2020/12/04 Python
简单介绍Object类的功能、常用方法
2013/10/02 面试题
寻找迷宫的一条出路,o通路;X:障碍
2016/07/10 面试题
对标管理实施方案
2014/03/12 职场文书
积极贯彻学习两会精神总结
2014/03/17 职场文书
书香校园建设方案
2014/05/02 职场文书
教师党员批评与自我批评发言稿
2014/10/15 职场文书
群众路线教育实践活动心得体会(教师)
2014/10/31 职场文书
2014年幼儿园园务工作总结
2014/12/05 职场文书
2014财务年终工作总结
2014/12/08 职场文书
2019员工保密协议书(3篇)
2019/09/23 职场文书
使用 Apache Dubbo 实现远程通信(微服务架构)
2022/02/12 Servers
mysql 索引的数据结构为什么要采用B+树
2022/04/26 MySQL