浅谈vue 多个变量同时赋相同值互相影响
首先,该项目用到了element-ui中的Tabs标签;然后来龙去脉是酱紫的:
一个项目中需动态渲染一个列表billItemLIsts,列表中包含n组小列表,其中小列表的state_pj用于改变该小列表中的radio,于是:
{{subitem.title}}:
那么现在列表效果达到了,然鹅这个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文件 letbar="stringBar"; letfoo="stringFoo"; letfn0=function(){ console.log("fn0"); }; letfn1=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多个变量同时赋相同值互相影响就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持毛票票。