elementui中使用el-tabs切換實(shí)時(shí)更新數(shù)據(jù)
使用el-tabs切換實(shí)時(shí)更新數(shù)據(jù)
項(xiàng)目中使用el-tabs 發(fā)現(xiàn)會(huì)一次性把所有 tab 里的請求讀完,之后進(jìn)行 tab 切換,不再重新讀取請求
想要實(shí)現(xiàn)切換 tab 能實(shí)時(shí)更新數(shù)據(jù)的要求
<el-tabs type="border-card" class="root" v-model="activeName" @tab-click="handleTabClick"> ? ?<el-tab-pane label="menu" name="menu"> ? ? ?<menu-perm :menus="menus" v-if="tabRefresh.menu" /> ? ?</el-tab-pane> ? ?<el-tab-pane label="perm" name="perm"> ? ? ?<api-perm :permissions="permissions" v-if="tabRefresh.perm" /> ? ?</el-tab-pane> ? ?<el-tab-pane label="data" name="data"> ? ? ?<span v-if="tabRefresh.data">數(shù)據(jù)授權(quán)</span> ? ?</el-tab-pane> ?</el-tabs>
js 部分
export default {
? data () {
? ? return {
? ? ? activeName: 'menu',
? ? ? tabRefresh: {
? ? ? ? menu: true,
? ? ? ? perm: false,
? ? ? ? data: false
? ? ? }
? ? }
? },
? methods: {
? ? handleTabClick (tab) {
? ? ? this.activeName = tab.name
? ? ? switch (this.activeName) {
? ? ? ? case 'menu':
? ? ? ? ? this.switchTab('menu')
? ? ? ? ? break
? ? ? ? case 'perm':
? ? ? ? ? this.switchTab('perm')
? ? ? ? ? break
? ? ? ? case 'data':
? ? ? ? ? this.switchTab('data')
? ? ? ? ? break
? ? ? }
? ? },
? ? switchTab (tab) {
? ? ? for (let key in this.tabRefresh) {
? ? ? ? if (key === tab) {
? ? ? ? ? this.tabRefresh[key] = true
? ? ? ? } else {
? ? ? ? ? this.tabRefresh[key] = false
? ? ? ? }
? ? ? }
? ? },
? }
}通過 v-if 進(jìn)行選擇性渲染,切換 tab 后,將其重新激活,并重新請求后端數(shù)據(jù)
el-tabs切換確認(rèn)
實(shí)現(xiàn)效果

相關(guān)知識(shí)
el-tabs具有屬性before-leave

解決代碼
<template>
<el-tabs v-model="activeName" :before-leave="leaveTab">
<el-tab-pane label="用戶管理" name="first">用戶管理</el-tab-pane>
<el-tab-pane label="配置管理" name="second">配置管理</el-tab-pane>
<el-tab-pane label="角色管理" name="third">角色管理</el-tab-pane>
<el-tab-pane label="定時(shí)任務(wù)補(bǔ)償" name="fourth">定時(shí)任務(wù)補(bǔ)償</el-tab-pane>
</el-tabs>
</template>
<script>
data(){
return{
activeName:"first"
}
}
methods:{
leaveTab(){
let a = confirm('有未保存的更改, 確認(rèn)離開?')
if (a) {
console.log('確認(rèn)')
return true
} else {
console.log('取消')
return false
}
}
}
</script>
解釋
:before-leave是屬性,需要綁定一個(gè)值。這個(gè)值是通過leaveTab傳遞的
這個(gè)問題很簡單……但是困擾了有幾天……要多看看 官方文檔?。。?!
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
- vue3+element?Plus使用el-tabs標(biāo)簽頁解決頁面刷新不回到默認(rèn)頁的問題
- Element--el-tabs固定在頂部問題
- vue2項(xiàng)目使用element-ui的el-tabs組件導(dǎo)致瀏覽器崩潰卡死問題
- elementUI給el-tabs/el-tab-pane添加圖標(biāo)效果實(shí)例
- vue?elementUi中的tabs標(biāo)簽頁使用教程
- ElementUI中el-tabs事件綁定的具體使用
- vue+element tabs選項(xiàng)卡分頁效果
- Element中el-tabs左右滑動(dòng)動(dòng)畫的實(shí)現(xiàn)
相關(guān)文章
vue實(shí)現(xiàn)短信驗(yàn)證碼登錄功能(流程詳解)
無論是移動(dòng)端還是pc端登錄或者注冊界面都會(huì)見到手機(jī)驗(yàn)證碼登錄這個(gè)功能,輸入手機(jī)號,得到驗(yàn)證碼,這篇文章主要介紹了基于vue實(shí)現(xiàn)短信驗(yàn)證碼登錄功能,需要的朋友可以參考下2019-12-12
vue setInterval 定時(shí)器失效的解決方式
這篇文章主要介紹了vue setInterval 定時(shí)器失效的解決方式,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-07-07
vue實(shí)現(xiàn)長圖垂直居上 vue實(shí)現(xiàn)短圖垂直居中
這篇文章主要為大家詳細(xì)介紹了vue彈性布局實(shí)現(xiàn)長圖垂直居上,vue實(shí)現(xiàn)短圖垂直居中,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-10-10
在Vue3項(xiàng)目中使用Vuex進(jìn)行狀態(tài)管理的詳細(xì)教程
在?Vue?3?中使用?Vuex?進(jìn)行狀態(tài)管理是一個(gè)很好的實(shí)踐,特別是在涉及到多個(gè)組件間共享狀態(tài)的情況,下面是如何在?Vue?3?項(xiàng)目中設(shè)置和使用?Vuex?的教程,包括?state,?mutations,?actions,?getters?的概念及其用途,需要的朋友可以參考下2024-09-09
基于vue+elementPlus的動(dòng)態(tài)導(dǎo)航標(biāo)簽欄tabs具體過程
這篇文章主要給大家介紹了關(guān)于基于vue+elementPlus的動(dòng)態(tài)導(dǎo)航標(biāo)簽欄tabs的相關(guān)資料,本文主要詳述了在系統(tǒng)上添加導(dǎo)航標(biāo)簽欄功能時(shí),首次嘗試的過程,并且希望能為同行提供一個(gè)小demo,需要的朋友可以參考下2024-10-10
vue動(dòng)態(tài)路由加載時(shí)出現(xiàn)Cannot?find?module?xxx問題
這篇文章主要介紹了vue動(dòng)態(tài)路由加載時(shí)出現(xiàn)Cannot?find?module?xxx問題,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-01-01

