欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Vue3 Element Plus el-tabs數(shù)據(jù)刷新實現(xiàn)方式

 更新時間:2025年07月30日 09:13:04   作者:滿  
這篇文章主要介紹了Vue3 Element Plus el-tabs數(shù)據(jù)刷新實現(xiàn)方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教

方法1: 使用@tab-change事件

<template>
  <el-tabs v-model="activeTab" @tab-change="handleTabChange">
    <el-tab-pane label="Tab 1" name="tab1">
      <div v-if="activeTab === 'tab1'">
        <!-- 內(nèi)容1 -->
        {{ tab1Data }}
      </div>
    </el-tab-pane>
    <el-tab-pane label="Tab 2" name="tab2">
      <div v-if="activeTab === 'tab2'">
        <!-- 內(nèi)容2 -->
        {{ tab2Data }}
      </div>
    </el-tab-pane>
  </el-tabs>
</template>

<script setup>
import { ref } from 'vue';

const activeTab = ref('tab1');
const tab1Data = ref(null);
const tab2Data = ref(null);

const handleTabChange = (tabName) => {
  if (tabName === 'tab1') {
    fetchTab1Data();
  } else if (tabName === 'tab2') {
    fetchTab2Data();
  }
};

const fetchTab1Data = async () => {
  // 模擬API請求
  tab1Data.value = await new Promise(resolve => {
    setTimeout(() => resolve('Tab 1 數(shù)據(jù)已刷新'), 500);
  });
};

const fetchTab2Data = async () => {
  // 模擬API請求
  tab2Data.value = await new Promise(resolve => {
    setTimeout(() => resolve('Tab 2 數(shù)據(jù)已刷新'), 500);
  });
};

// 初始化加載第一個tab的數(shù)據(jù)
fetchTab1Data();
</script>

方法2: 使用v-if控制內(nèi)容渲染

<template>
  <el-tabs v-model="activeTab">
    <el-tab-pane label="Tab 1" name="tab1">
      <Tab1Content v-if="activeTab === 'tab1'" />
    </el-tab-pane>
    <el-tab-pane label="Tab 2" name="tab2">
      <Tab2Content v-if="activeTab === 'tab2'" />
    </el-tab-pane>
  </el-tabs>
</template>

<script setup>
import { ref } from 'vue';
import Tab1Content from './Tab1Content.vue';
import Tab2Content from './Tab2Content.vue';

const activeTab = ref('tab1');
</script>

在子組件中使用 onMounted 鉤子加載數(shù)據(jù):

<!-- Tab1Content.vue -->
<script setup>
import { onMounted, ref } from 'vue';

const data = ref(null);

onMounted(async () => {
  // 加載數(shù)據(jù)
  data.value = await fetchData();
});
</script>

方法3: 使用keep-alive和activated鉤子

如果需要緩存組件但依然在切換時刷新數(shù)據(jù):

<template>
  <el-tabs v-model="activeTab">
    <el-tab-pane label="Tab 1" name="tab1">
      <keep-alive>
        <Tab1Content v-if="activeTab === 'tab1'" />
      </keep-alive>
    </el-tab-pane>
    <el-tab-pane label="Tab 2" name="tab2">
      <keep-alive>
        <Tab2Content v-if="activeTab === 'tab2'" />
      </keep-alive>
    </el-tab-pane>
  </el-tabs>
</template>

在子組件中使用 activated 鉤子:

<!-- Tab1Content.vue -->
<script setup>
import { ref, activated } from 'vue';

const data = ref(null);

const loadData = async () => {
  data.value = await fetchData();
};

// 組件激活時加載數(shù)據(jù)
activated(() => {
  loadData();
});

// 初始加載
loadData();
</script>

注意事項

  • 使用 v-if 會完全銷毀和重建組件,適合數(shù)據(jù)完全獨立的情況
  • keep-alive + activated 適合需要保留組件狀態(tài)但刷新數(shù)據(jù)的情況
  • 對于簡單場景,直接使用 @tab-change 事件即可

總結(jié)

以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關文章

  • Vue+Canvas繪圖使用的講解

    Vue+Canvas繪圖使用的講解

    這篇文章主要介紹了Vue+Canvas繪圖的使用方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-08-08
  • vue?v-model的詳細講解(推薦!)

    vue?v-model的詳細講解(推薦!)

    vue中經(jīng)常使用到和這類表單元素,vue對于這些元素的數(shù)據(jù)綁定和我們以前經(jīng)常用的jQuery有些區(qū)別,下面這篇文章主要給大家介紹了關于vue?v-model的相關資料,需要的朋友可以參考下
    2022-04-04
  • Vue3中導入和使用圖標庫Font Awesome的實現(xiàn)步驟

    Vue3中導入和使用圖標庫Font Awesome的實現(xiàn)步驟

    Font Awesome 是互聯(lián)網(wǎng)的圖標庫和工具包,被數(shù)百萬設計師、開發(fā)人員和內(nèi)容創(chuàng)建者使用,Font Awesome的圖標非常豐富,基本涵蓋你所需要的所有,本文給大家介紹了Vue3中導入和使用圖標庫Font Awesome的具體步驟,需要的朋友可以參考下
    2025-01-01
  • 輕松理解vue的雙向數(shù)據(jù)綁定問題

    輕松理解vue的雙向數(shù)據(jù)綁定問題

    Vue是當前很火的一款MVVM的輕量級框架,它是以數(shù)據(jù)驅(qū)動和組件化的思想構(gòu)建的。因為它提供了簡潔易于理解的api,使得我們很容易上手。這篇文章給大家介紹了vue雙向數(shù)據(jù)綁定問題,感興趣的朋友一起看看吧
    2017-10-10
  • 一定要知道的 25 個 Vue 技巧

    一定要知道的 25 個 Vue 技巧

    這篇文章主要給大家分享將 prop 限制為類型列表、默認內(nèi)容和擴展點、使用引號觀察嵌套值、知道何時使用 v-if、單作用域 slot 的簡寫、有條件地渲染slot等25 個Vue 技巧,下文是下相關資料,需要的朋友可以參考一下
    2021-11-11
  • 派發(fā)器抽離vue2單組件中的大量邏輯技巧

    派發(fā)器抽離vue2單組件中的大量邏輯技巧

    這篇文章主要為大家介紹了派發(fā)器抽離vue2單組件中的大量邏輯技巧,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-07-07
  • vue基于electron構(gòu)建第一個程序

    vue基于electron構(gòu)建第一個程序

    這篇文章主要為大家介紹了vue基于electron構(gòu)建第一個程序過程詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-01-01
  • Vue中使用matomo進行訪問流量統(tǒng)計的實現(xiàn)

    Vue中使用matomo進行訪問流量統(tǒng)計的實現(xiàn)

    這篇文章主要介紹了Vue中使用matomo進行訪問流量統(tǒng)計的實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2019-11-11
  • Vue中Axios的封裝與接口管理詳解

    Vue中Axios的封裝與接口管理詳解

    在vue項目中和后臺交互獲取數(shù)據(jù)這塊,我們通常使用的是axios庫,它是基于promise的http庫,可運行在瀏覽器端和node.js中,下面這篇文章主要給大家介紹了關于Vue中Axios的封裝與接口管理的相關資料,需要的朋友可以參考下
    2022-03-03
  • VuePress整合Toast消息提示的實現(xiàn)步驟

    VuePress整合Toast消息提示的實現(xiàn)步驟

    本文主要介紹了VuePress整合Toast消息提示的實現(xiàn)步驟,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2025-06-06

最新評論