淺談vue 多個(gè)變量同時(shí)賦相同值互相影響
首先,該項(xiàng)目用到了element-ui中的Tabs 標(biāo)簽;然后來(lái)龍去脈是醬紫的:
一個(gè)項(xiàng)目中需動(dòng)態(tài)渲染一個(gè)列表billItemLIsts,列表中包含n組小列表,其中小列表的state_pj用于改變?cè)撔×斜碇械膔adio,于是:
<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">計(jì)費(fèi)</el-radio> <el-radio :label="chargeNo">不計(jì)費(fèi)</el-radio> </el-radio-group> </div> </li> </ul> </el-tab-pane> </el-tabs>
那么現(xiàn)在列表效果達(dá)到了,然鵝這個(gè)tab得放到dialog中,且存在取消與確定操作,確定時(shí)不用多說(shuō),取消時(shí)改變了的radio是不會(huì)自己變成我們想要的樣子,于是乎:
//最終的收費(fèi)設(shè)置數(shù)據(jù) billItemLIsts: [], //最終原始的收費(fèi)設(shè)置數(shù)據(jù) billItemLIstsOriginal: [],
沒(méi)錯(cuò)現(xiàn)在billItemLIsts就可以隨之怎么操作,因?yàn)槲覀冇衎illItemLIstsOriginal記住了他最初的樣子;
接下來(lái)就是付諸實(shí)際了:
// 取消修改收費(fèi)設(shè)置 cancleChargeSet() { this.billItemLIsts = this.billItemLIstsOriginal; if(!this.chargeOpenIs){ this.chargingFunIs = 1; } },
然并卵…
百思不得其解,他并沒(méi)有發(fā)揮自己的作用
這是因?yàn)樵贠bject賦值的時(shí)候,傳遞的不是值,而是引用,他們指向了同一個(gè)空間!
搞清楚了原因就好下手啦
解決:
1.this.billItemLIsts = JSON.parse( JSON.stringify(this.billItemLIstsOriginal) );
2.或使用 ES6 的解析語(yǔ)法 this.billItemLIsts = { ...this.billItemLIstsOriginal }
補(bǔ)充知識(shí):VUE(ES6) 導(dǎo)出變量、常量,方法
在lib.js文件中, 使用 export{接口} 導(dǎo)出接口, 大括號(hào)中的接口名字為上面定義的變量, import和export是對(duì)應(yīng)的;
//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 多個(gè)變量同時(shí)賦相同值互相影響就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
組件庫(kù)中使用 vue-i18n 國(guó)際化的案例詳解
這篇文章主要介紹了組件庫(kù)中使用 vue-i18n 國(guó)際化,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2023-04-04vue組件編寫(xiě)之todolist組件實(shí)例詳解
這篇文章主要介紹了vue組件編寫(xiě)之todolist組件的實(shí)例講解,本文給大家介紹的非常詳細(xì),需要的朋友可以參考下2018-01-01關(guān)于vant折疊面板默認(rèn)展開(kāi)問(wèn)題
這篇文章主要介紹了關(guān)于vant折疊面板默認(rèn)展開(kāi)問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-04-04vue監(jiān)聽(tīng)滾動(dòng)條頁(yè)面滾動(dòng)動(dòng)畫(huà)示例代碼
Vue是一套用于構(gòu)建用戶界面的漸進(jìn)式框架,與其它大型框架不同的是,Vue?被設(shè)計(jì)為可以自底向上逐層應(yīng)用,下面這篇文章主要給大家介紹了關(guān)于vue監(jiān)聽(tīng)滾動(dòng)條頁(yè)面滾動(dòng)動(dòng)畫(huà)的相關(guān)資料,需要的朋友可以參考下2023-06-06vue獲取v-for異步數(shù)據(jù)dom的解決問(wèn)題
這篇文章主要介紹了vue獲取v-for異步數(shù)據(jù)dom的解決問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-03-03