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

vue3解決各場景l(fā)oading過度的五種方法

 更新時間:2023年11月28日 09:38:49   作者:一花一world  
這篇文章主要為大家詳細(xì)介紹了vue3中解決各場景l(fā)oading過度的五種方法,文中的示例代碼講解詳細(xì),具有一定的借鑒價值,感興趣的小伙伴可以學(xué)習(xí)一下

1. 使用 v-if 和 v-show

使用場景:當(dāng)需要根據(jù)條件顯示或隱藏某個元素時,可以使用 v-if 和 v-show。

優(yōu)點:代碼簡潔易懂,執(zhí)行效率高。

缺點:當(dāng)條件判斷比較復(fù)雜時,v-if 和 v-show 的嵌套層數(shù)過多,可讀性差。

示例代碼:

<template>
  <div>
    <div v-if="isLoading">加載中...</div>
    <div v-else>內(nèi)容</div>
  </div>
</template>

<script>
export default {
  data() {
    return {
      isLoading: true,
    };
  },
  mounted() {
    setTimeout(() => {
      this.isLoading = false;
    }, 2000);
  },
};
</script>

2. 使用路由守衛(wèi)(Navigation Guards)

使用場景:當(dāng)需要在路由切換前后執(zhí)行一些操作時,可以使用路由守衛(wèi)。

優(yōu)點:可以確保在路由切換過程中執(zhí)行一些特定的邏輯,例如顯示 loading 動畫。

缺點:需要配合 Vue Router 使用,配置相對復(fù)雜。

示例代碼:

import { createRouter, createWebHistory } from 'vue-router';

const routes = [
  {
    path: '/',
    name: 'Home',
    component: () => import('@/views/Home.vue'),
  },
];

const router = createRouter({
  history: createWebHistory(),
  routes,
});

router.beforeEach((to, from, next) => {
  if (to.path === '/') {
    next();
  } else {
    next({ path: '/' });
  }
});

export default router;

3. 使用異步組件(Async Components)

使用場景:當(dāng)需要動態(tài)加載一個組件時,可以使用異步組件。

優(yōu)點:可以提高應(yīng)用程序的性能,因為只有在實際需要時才會加載組件。

缺點:需要對異步組件有一定的了解,才能正確地使用它們。

示例代碼:

<template>
  <div>
    <AsyncComponent :is="isLoading" />
  </div>
</template>

<script>
import { defineAsyncComponent } from 'vue';

export default {
  data() {
    return {
      isLoading: true,
    };
  },
  components: {
    AsyncComponent: defineAsyncComponent(() => import('./AsyncComponent.vue')),
  },
  mounted() {
    setTimeout(() => {
      this.isLoading = false;
    }, 2000);
  },
};
</script>

4. 使用第三方庫(如 element-plus、vant 等)提供的 loading 組件

使用場景:當(dāng)需要提供更好的用戶體驗時,可以使用第三方庫提供的 loading 組件。

優(yōu)點:可以提供更美觀、更易于使用的 loading 組件。

缺點:可能會增加項目的體積。

示例代碼:

<template>
  <div>
    <el-loading v-if="isLoading" fullscreen></el-loading>
    <div v-else>內(nèi)容</div>
  </div>
</template>

<script>
import { ElLoading } from 'element-plus';

export default {
  data() {
    return {
      isLoading: true,
    };
  },
  mounted() {
    setTimeout(() => {
      this.isLoading = false;
    }, 2000);
  },
  components: {
    ElLoading,
  },
};
</script>

5. 自定義全局的 loading 組件

使用場景:當(dāng)需要提供更好的用戶體驗時,可以使用自定義的全局 loading 組件。

優(yōu)點:可以提供更美觀、更易于使用的 loading 組件。此外,自定義的 loading 組件可以更好地控制其顯示和隱藏。

缺點:需要一定的開發(fā)成本。

MyLoading 的自定義組件:

<template>
  <div>
    <my-loading v-if="isLoading"></my-loading>
    <div v-else>內(nèi)容</div>
  </div>
</template>

<script>
import MyLoading from './MyLoading.vue';

export default {
  data() {
    return {
      isLoading: true,
    };
  },
  mounted() {
    setTimeout(() => {
      this.isLoading = false;
    }, 2000);
  },
  components: {
    MyLoading,
  },
};
</script>

到此這篇關(guān)于vue3解決各場景l(fā)oading過度的五種方法的文章就介紹到這了,更多相關(guān)vue3解決loading過度內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 在pycharm中開發(fā)vue的方法步驟

    在pycharm中開發(fā)vue的方法步驟

    這篇文章主要介紹了在pycharm中開發(fā)vue的方法步驟,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-03-03
  • Vue引用echarts超詳細(xì)步驟(附圖文)

    Vue引用echarts超詳細(xì)步驟(附圖文)

    這篇文章主要給大家介紹了關(guān)于Vue引用echarts超詳細(xì)步驟,vue中優(yōu)雅的使用echarts?在前端工作中,數(shù)據(jù)可視化用得最多的,可能就是圖表了,需要的朋友可以參考下
    2023-08-08
  • 完美解決通過IP地址訪問VUE項目的問題

    完美解決通過IP地址訪問VUE項目的問題

    這篇文章主要介紹了完美解決通過IP地址訪問VUE項目的問題,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-07-07
  • Vue中使用定時器(setInterval、setTimeout)的兩種方式

    Vue中使用定時器(setInterval、setTimeout)的兩種方式

    js中定時器有兩種,一個是循環(huán)執(zhí)行?setInterval,另一個是定時執(zhí)行?setTimeout,這篇文章主要介紹了Vue中使用定時器?(setInterval、setTimeout)的兩種方式,需要的朋友可以參考下
    2023-03-03
  • Element Cascader 級聯(lián)選擇器的使用示例

    Element Cascader 級聯(lián)選擇器的使用示例

    這篇文章主要介紹了Element Cascader 級聯(lián)選擇器的使用示例,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-07-07
  • vue項目實戰(zhàn)之圓柱狀水波效果實現(xiàn)

    vue項目實戰(zhàn)之圓柱狀水波效果實現(xiàn)

    最近工作中實現(xiàn)的一個效果不錯,分享給大家,下面這篇文章主要給大家介紹了關(guān)于vue項目實戰(zhàn)之圓柱狀水波效果實現(xiàn)的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2022-12-12
  • vue原生方法自定義右鍵菜單

    vue原生方法自定義右鍵菜單

    這篇文章主要為大家詳細(xì)介紹了vue原生方法自定義右鍵菜單,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-04-04
  • 詳解nuxt路由鑒權(quán)(express模板)

    詳解nuxt路由鑒權(quán)(express模板)

    這篇文章主要介紹了詳解nuxt路由鑒權(quán)(express模板),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2018-11-11
  • Vue 將后臺傳過來的帶html字段的字符串轉(zhuǎn)換為 HTML

    Vue 將后臺傳過來的帶html字段的字符串轉(zhuǎn)換為 HTML

    這篇文章主要介紹了Vue 將后臺傳過來的帶html字段的字符串轉(zhuǎn)換為 HTML ,需要的朋友可以參考下
    2018-03-03
  • 使用Vue完成一個簡單的todolist的方法

    使用Vue完成一個簡單的todolist的方法

    本篇文章主要介紹了使用Vue完成一個簡單的todolist的方法,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-12-12

最新評論