浅谈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 加载和执行-性能提高篇
Dec 28 Javascript
解析offsetHeight,clientHeight,scrollHeight之间的区别
Nov 20 Javascript
js实现可兼容IE、FF、Chrome、Opera及Safari的音乐播放器
Feb 11 Javascript
PHP+jQuery+Ajax实现多图片上传效果
Mar 14 Javascript
ECHO.js 纯javascript轻量级延迟加载的实例代码
May 24 Javascript
AngularJs ng-route路由详解及实例代码
Sep 14 Javascript
jquery判断页面网址是否有效的两种方法
Dec 11 Javascript
在Vue中如何使用Cookie操作实例
Jul 27 Javascript
简单谈谈关于Angular Cli打包的事
Sep 05 Javascript
JavaScript实现换肤功能
Sep 15 Javascript
快速搭建React的环境步骤详解
Nov 06 Javascript
小程序input数据双向绑定实现方法
Oct 17 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防止sql注入代码实例
2013/12/18 PHP
php验证码生成器
2017/05/24 PHP
laravel5.2表单验证,并显示错误信息的实例
2019/09/29 PHP
php pdo连接数据库操作示例
2019/11/18 PHP
使用jquery的ajax需要注意的地方dataType的设置
2013/08/12 Javascript
js实现鼠标感应图片展示的方法
2015/02/27 Javascript
JavaScript运行过程中的“预编译阶段”和“执行阶段”
2015/12/16 Javascript
模仿password输入框的实现代码
2016/06/07 Javascript
bootstrap使用validate实现简单校验功能
2016/12/02 Javascript
基于Vue实现timepicker
2017/04/25 Javascript
webpack组织模块打包Library的原理及实现
2018/03/10 Javascript
微信小程序冒泡事件及其阻止方法实例分析
2018/12/06 Javascript
小程序实现人脸识别功能(百度ai)
2018/12/23 Javascript
Jquery动态列功能完整实例
2019/08/30 jQuery
VUE子组件向父组件传值详解(含传多值及添加额外参数场景)
2020/09/01 Javascript
Python爬虫天气预报实例详解(小白入门)
2018/01/24 Python
使用python3实现操作串口详解
2019/01/01 Python
Django 实现前端图片压缩功能的方法
2019/08/07 Python
Python检查图片是否损坏及图片类型是否正确过程详解
2019/09/30 Python
Python如何在循环内使用list.remove()
2020/06/01 Python
如何理解python面向对象编程
2020/06/01 Python
python实现代码审查自动回复消息
2021/02/01 Python
Python列表的深复制和浅复制示例详解
2021/02/12 Python
Html5原创俄罗斯方块(基于canvas)
2019/01/07 HTML / CSS
莫斯科珠宝厂官方网站:Miuz
2020/09/19 全球购物
linux下进程间通信的方式
2014/12/23 面试题
UNIX文件系统常用命令
2012/05/25 面试题
吸烟检讨书2000字
2014/02/13 职场文书
安全责任书范文
2014/08/25 职场文书
3.15消费者权益日活动总结
2015/02/09 职场文书
项目投资意向书范本
2015/05/09 职场文书
工作报告范文
2019/06/20 职场文书
新店开业策划方案怎么书写?
2019/07/05 职场文书
MySQL表的增删改查基础教程
2021/04/07 MySQL
剧场版《转生恶役只好拔除破灭旗标》公开最新视觉图 2023年上映
2022/04/02 日漫
html中两种获取标签内的值的方法
2022/06/16 jQuery