浅谈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 相关文章推荐
JavaScript中String和StringBuffer的速度之争
Apr 01 Javascript
js 单击式的下拉菜单效果实例
Aug 13 Javascript
jQuery点击自身以外地方关闭弹出层的简单实例
Dec 24 Javascript
基于jQuery实现的QQ表情插件
Aug 25 Javascript
Bootstrap按钮组简单实现代码
Mar 06 Javascript
javascript作用域链与执行环境详解
Mar 25 Javascript
Node错误处理笔记之挖坑系列教程
Jun 05 Javascript
使用angularjs.foreach时return的问题解决
Sep 30 Javascript
对 Vue-Router 进行单元测试的方法
Nov 05 Javascript
Vue项目页面跳转时浏览器窗口上方显示进度条功能
Mar 26 Javascript
在Vuex中Mutations修改状态操作
Jul 24 Javascript
vue在App.vue文件中监听路由变化刷新页面操作
Aug 14 Javascript
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与MySQL开发中页面乱码的产生与解决
2008/03/27 PHP
php获取服务器信息的实现代码
2013/02/04 PHP
php发送get、post请求的6种方法简明总结
2014/07/08 PHP
php匹配字符中链接地址的方法
2014/12/22 PHP
PHP rmdir()函数的用法总结
2019/07/02 PHP
JAVASCRIPT车架号识别/验证函数代码 汽车车架号验证程序
2012/01/08 Javascript
JQueryiframe页面操作父页面中的元素与方法(实例讲解)
2013/11/19 Javascript
js下将阿拉伯数字每三位一逗号分隔(如:15000000转化为15,000,000)
2014/06/02 Javascript
常见的jQuery选择器汇总
2014/11/24 Javascript
浅谈JavaScript字符串拼接
2015/06/25 Javascript
AngularJS ng-app 指令实例详解
2016/07/30 Javascript
jQuery File Upload文件上传插件使用详解
2016/12/06 Javascript
深入浅析AngularJs模版与v-bind
2018/07/06 Javascript
小程序页面动态配置实现方法
2019/02/05 Javascript
微信小程序如何使用云开发
2019/05/17 Javascript
微信小程序实现图片选择并预览功能
2019/07/25 Javascript
layui 监听select选择 获取当前select的ID名称方法
2019/09/24 Javascript
使用konva和vue-konva库实现拖拽滑块验证功能
2020/04/27 Javascript
解决vue net :ERR_CONNECTION_REFUSED报错问题
2020/08/13 Javascript
JavaScript判断数据类型有几种方法及区别介绍
2020/09/02 Javascript
Python中捕捉详细异常信息的代码示例
2014/09/18 Python
python读写二进制文件的方法
2015/05/09 Python
Python遍历指定文件及文件夹的方法
2015/05/09 Python
python中enumerate函数用法实例分析
2015/05/20 Python
Python中index()和seek()的用法(详解)
2017/04/27 Python
TensorFlow深度学习之卷积神经网络CNN
2018/03/09 Python
Python用for循环实现九九乘法表
2018/05/31 Python
Python 获取div标签中的文字实例
2018/12/20 Python
pyshp创建shp点文件的方法
2018/12/31 Python
python itchat给指定联系人发消息的方法
2019/06/11 Python
在Django下测试与调试REST API的方法详解
2019/08/29 Python
html5 浏览器支持 如何让所有的浏览器都支持HTML5标签样式
2012/12/07 HTML / CSS
MAC彩妆澳洲官网:M·A·C AU
2021/01/17 全球购物
探矿工程师自荐信
2014/01/24 职场文书
车间质检员岗位职责
2015/04/08 职场文书
Python matplotlib可视化之绘制韦恩图
2022/02/24 Python