elementui中el-tabs切换实时更新数据

本文介绍如何使用Vue.js中的el-tabs组件实现切换tab时动态加载数据的功能,通过v-if进行选择性渲染,确保每次切换都能获取最新的数据。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

项目中使用el-tabs 发现会一次性把所有 tab 里的请求读完,之后进行 tab 切换,不再重新读取请求
想要实现切换 tab 能实时更新数据的要求

<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">数据授权</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 进行选择性渲染,切换 tab 后,将其重新激活,并重新请求后端数据

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值