Vue中多个变量如何同时赋相同值且互相影响?

2026-04-03 00:391阅读0评论SEO资讯
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计672个文字,预计阅读时间需要3分钟。

Vue中多个变量如何同时赋相同值且互相影响?

首先,该项目使用了element-ui中的Tabs+标签;接着,页面中龙图腾是靛紫色的:另外,一个项目中需要动态渲染一个列表billItemLists,列表中包含├┤组小列表,其中小列表的state_pj用于改变该小列表中的ra。

首先,该项目用到了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是不会自己变成我们想要的样子,于是乎:

Vue中多个变量如何同时赋相同值且互相影响?

//最终的收费设置数据 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 多个变量同时赋相同值互相影响就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持易盾网络。

本文共计672个文字,预计阅读时间需要3分钟。

Vue中多个变量如何同时赋相同值且互相影响?

首先,该项目使用了element-ui中的Tabs+标签;接着,页面中龙图腾是靛紫色的:另外,一个项目中需要动态渲染一个列表billItemLists,列表中包含├┤组小列表,其中小列表的state_pj用于改变该小列表中的ra。

首先,该项目用到了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是不会自己变成我们想要的样子,于是乎:

Vue中多个变量如何同时赋相同值且互相影响?

//最终的收费设置数据 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 多个变量同时赋相同值互相影响就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持易盾网络。