首先,该项目用到了element-ui中的Tabs 标签;然后来龙去脉是酱紫的:一个项目中需动态渲染一个列表billItemLIsts,列表中包含n组小列表,其中小列表的state_pj用于改变该小列表中的radio,于是:








  • {{subitem.title}}:






    计费

    不计费



















  • {{subitem.title}}:






    计费

    不计费










那么现在列表效果达到了,然鹅这个tab得放到dialog中,且存在取消与确定操作,确定时不用多说,取消时改变了的radio是不会自己变成我们想要的样子,于是乎:
//最终的收费设置数据
billItemLIsts: [],
//最终原始的收费设置数据
billItemLIstsOriginal: [],
//最终的收费设置数据
billItemLIsts: [],
//最终原始的收费设置数据
billItemLIstsOriginal: [],没错现在billItemLIsts就可以随之怎么操作,因为我们有billItemLIstsOriginal记住了他最初的样子;接下来就是付诸实际了:
// 取消修改收费设置
cancleChargeSet() {
this.billItemLIsts = this.billItemLIstsOriginal;
if(!this.chargeOpenIs){
this.chargingFunIs = 1;
}


},
// 取消修改收费设置
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) 导出变量、常量,方法补充知识:补充知识: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();

//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 多个变量同时赋相同值互相影响就是小编分享给大家的全部内容了,希望能给大家一个参考。