解決vue中el-tab-pane切換的問(wèn)題
今天在編寫(xiě)vue的時(shí)候用到了el-tabs,然后遇到切換的時(shí)候,在次打開(kāi)el-dialog還是上次的狀態(tài)(因?yàn)閮纱未蜷_(kāi)的el-tab-pane數(shù)量不一樣,就出現(xiàn)了問(wèn)題)
如下:

第一次打開(kāi)時(shí)的狀態(tài),打開(kāi)到第二次的時(shí)候

解決方法
給el-tab-pane命名
<el-tabs type="border-card" v-model="activeName" ></el-tabs>
在script中
data() {
return {
isShow: '',
activeName:'second'
}
},
在每次關(guān)閉彈框的時(shí)候,在關(guān)閉方法中重置activeName
activeName='second'
補(bǔ)充知識(shí):vue + element-ui 制作tab切換(切換vue組件,踩坑總結(jié))
項(xiàng)目中用到了一個(gè)頁(yè)面要實(shí)現(xiàn)tab切換實(shí)現(xiàn)報(bào)表展示,自行百度了一下;最后實(shí)現(xiàn)效果,在這里把步驟分享給大家!
創(chuàng)建文件:
tabZujian.vue
<template>
<div class="tabZujian">
<el-tabs v-model="activeName">
<el-tab-pane label="tab1" name="first" :key="'first'">
<child1></child1>
</el-tab-pane>
<el-tab-pane label="tab2" name="second" :key="'second'">
<child2></child2>
</el-tab-pane>
</el-tabs>
</div>
</template>
<script>
import tabZujianChild1 from '@/tabComponents/tabZujianChild1'
import tabZujianChild2 from '@/tabComponents/tabZujianChild2'
export default {
name: 'tabZujian',
components:{
child1:tabZujianChild1,
child2:tabZujianChild2
},
data() {
return {
//默認(rèn)第一個(gè)選項(xiàng)卡
activeName: "first",
}
},
mounted(){
}
}
</script>
tabZujianChild1.vue
<template>
<div class="child1">
我是第一個(gè)自組件
</div>
</template>
<script>
export default {
name: 'child1',
mounted(){
console.log("tab1組件")
}
}
</script>
tabZujianChild2.vue
<template>
<div class="child2">
我是第二個(gè)子組件
</div>
</template>
<script>
export default {
name: 'child1',
mounted(){
console.log("tab2組件")
}
}
</script>

問(wèn)題解決:
其實(shí)這個(gè)問(wèn)題解決起來(lái)非常簡(jiǎn)單,我們想要的是每次切換tab都能夠讓對(duì)應(yīng)的tab子組件進(jìn)行重新渲染。
初始化兩個(gè)變量 isChildUpdate1:true,isChildUpdate2:false;
使用v-if控制child1和child2是否渲染。
每次切換tab選項(xiàng)的時(shí)候,觸發(fā)事件。讓當(dāng)前點(diǎn)擊的tab變量設(shè)置位true,讓當(dāng)前組件重新渲染。
這時(shí)候當(dāng)你來(lái)回切換的時(shí)候,通過(guò)v-if判斷是否重新渲染當(dāng)前組件
更改一下tabZujian.vue
<template>
<div class="tabZujian">
<el-tabs v-model="activeName" @tab-click="handleClick">
<el-tab-pane label="tab1" name="first" :key="'first'">
<child1 v-if="isChildUpdate1"></child1>
</el-tab-pane>
<el-tab-pane label="tab2" name="second" :key="'second'">
<child2 v-if="isChildUpdate2"></child2>
</el-tab-pane>
</el-tabs>
</div>
</template>
<script>
import tabZujianChild1 from '@/tabComponents/tabZujianChild1'
import tabZujianChild2 from '@/tabComponents/tabZujianChild2'
export default {
name: 'tabZujian',
components:{
child1:tabZujianChild1,
child2:tabZujianChild2
},
data() {
return {
//默認(rèn)第一個(gè)選項(xiàng)卡
activeName: "first",
isChildUpdate1:true,
isChildUpdate2:false
}
},
mounted(){
},
methods:{
handleClick(tab) {
if(tab.name == "first") {
this.isChildUpdate1 = true;
this.isChildUpdate2 = false;
} else if(tab.name == "second") {
this.isChildUpdate1 = false;
this.isChildUpdate2 = true;
}
}
}
}
</script>
最后成功了。
以上這篇解決vue中el-tab-pane切換的問(wèn)題就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
- 詳解vue2.0 使用動(dòng)態(tài)組件實(shí)現(xiàn) Tab 標(biāo)簽頁(yè)切換效果(vue-cli)
- 詳解使用vue實(shí)現(xiàn)tab 切換操作
- Vue.js組件tabs實(shí)現(xiàn)選項(xiàng)卡切換效果
- 基于Vue實(shí)現(xiàn)tab欄切換內(nèi)容不斷實(shí)時(shí)刷新數(shù)據(jù)功能
- Vue.js組件tab實(shí)現(xiàn)選項(xiàng)卡切換
- vue Tab切換以及緩存頁(yè)面處理的幾種方式
- VUE的tab頁(yè)面切換的四種方法
- vue實(shí)現(xiàn)tab切換的3種方式及切換保持?jǐn)?shù)據(jù)狀態(tài)
- vue實(shí)現(xiàn)tab切換外加樣式切換方法
- vue實(shí)現(xiàn)tab欄切換效果
相關(guān)文章
vue3原始值響應(yīng)方案及響應(yīng)丟失問(wèn)題解讀
這篇文章主要介紹了vue3原始值響應(yīng)方案及響應(yīng)丟失問(wèn)題解讀,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-04-04
vue實(shí)現(xiàn)自定義日期組件功能的實(shí)例代碼
這篇文章主要介紹了vue自定義日期組件的實(shí)現(xiàn)代碼,代碼簡(jiǎn)單易懂,非常不錯(cuò),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2018-11-11
Vue2中Element?DatePicker組件設(shè)置默認(rèn)日期及控制日期范圍
后臺(tái)項(xiàng)目想使用時(shí)間選擇器選擇一段時(shí)間進(jìn)行數(shù)據(jù)篩選,所以下面這篇文章主要給大家介紹了關(guān)于Vue2中Element?DatePicker組件設(shè)置默認(rèn)日期及控制日期范圍的相關(guān)資料,文中通過(guò)實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下2022-11-11
vue.js iview打包上線后字體圖標(biāo)不顯示解決辦法
這篇文章主要介紹了vue.js iview打包上線后字體圖標(biāo)不顯示解決辦法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-01-01
vue-cli創(chuàng)建的項(xiàng)目,配置多頁(yè)面的實(shí)現(xiàn)方法
下面小編就為大家分享一篇vue-cli創(chuàng)建的項(xiàng)目,配置多頁(yè)面的實(shí)現(xiàn)方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2018-03-03
vue & vue Cli 版本及對(duì)應(yīng)關(guān)系解讀
這篇文章主要介紹了vue & vue Cli 版本及對(duì)應(yīng)關(guān)系,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-07-07
SpringBoot結(jié)合Vue3實(shí)現(xiàn)簡(jiǎn)單的前后端交互
本文主要介紹了SpringBoot結(jié)合Vue3實(shí)現(xiàn)簡(jiǎn)單的前后端交互,結(jié)合實(shí)際案例,說(shuō)明了如何實(shí)現(xiàn)前后端數(shù)據(jù)的交互,具有一定的?參考價(jià)值,感興趣的可以了解一下2023-08-08
Vue子組件如何修改父組件數(shù)據(jù)的方法及注意事項(xiàng)
這篇文章主要介紹了Vue子組件如何修改父組件數(shù)據(jù)的方法及注意事項(xiàng),具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-06-06
Vue整合Node.js直連Mysql數(shù)據(jù)庫(kù)進(jìn)行CURD操作過(guò)程詳解
這篇文章主要給大家分享Vue整合Node.js,直連Mysql數(shù)據(jù)庫(kù)進(jìn)行CURD操作的詳細(xì)過(guò)程,文中有詳細(xì)的代碼講解,具有一定的參考價(jià)值,需要的朋友可以參考下2023-07-07

