Vue進度條使用方法詳解

Vue進度條是一種很強大的展示網頁加載進度的方式,可以使用戶更直觀地感受到頁面加載狀態。Vue進度條可以在瀏覽器請求網絡資源時自動增長,也可以通過手動控制進度條的值來實現一些自定義需求。

一、Vue進度條的基本使用方法

Vue進度條有很多不同的實現方法,以下是使用 `nprogress` 庫實現進度條的基本方法:

首先安裝 `nprogress` 庫:

npm install --save nprogress

然後在 main.js 中引入該庫,並設置全局樣式:

// main.js
import NProgress from 'nprogress'
import 'nprogress/nprogress.css'

NProgress.configure({ showSpinner: false })

接下來,在需要展示進度條的組件中,使用以下代碼控制進度條的顯示和隱藏:

export default {
  name: 'MyComponent',
  mounted() {
    // 顯示進度條
    NProgress.start()

    // hide the progress bar
    NProgress.done()
  }
}

以上代碼中, `NProgress.start()` 顯示進度條, `NProgress.done()` 隱藏進度條。

二、通過路由來控制進度條

一般情況下,我們的頁面路由會較多,每個路由跳轉的過程中都要控制進度條的顯示和隱藏,這樣代碼會變得非常冗長。為了避免這種情況,我們可以通過 Vue-router 機制來自動控制進度條的顯示和隱藏。

在 main.js 中配置 Vue-router:

// main.js
import Vue from 'vue'
import router from './router'
import App from './App.vue'

Vue.config.productionTip = false

// 引入進度條
import NProgress from 'nprogress'
import 'nprogress/nprogress.css'
NProgress.configure({ showSpinner: false })

// 配置Vue Router
router.beforeEach((to, from, next) => {
  NProgress.start() // 開始進度條
  next()
})
router.afterEach(() => {
  NProgress.done() // 結束進度條
})

new Vue({
  router,
  render: h => h(App),
}).$mount('#app')

通過這個方法,可以大大簡化路由控制進度條的代碼量。

三、在App.vue中使用進度條

如果我們想在整個應用程序中使用進度條,可以將其放在App.vue中。在App.vue中,我們可以使用 `$route.path` 監聽頁面路由變化,然後自動控制進度條。

以下是在App.vue中控制進度條的代碼:

<template>
  <div>
    <!-- 通過 CSS 實現進度條 -->
    <div class="my-progress-bar" :style="{ width: progressBarWidth }"></div>
    <router-view />
  </div>
</template>

<script>
import NProgress from 'nprogress'
import 'nprogress/nprogress.css'

export default {
  name: 'App',
  data() {
    return {
      progressBarWidth: '0%'
    };
  },
  watch: {
    '$route' (to, from) {
      NProgress.start()
      this.progressBarWidth = '20%'
      setTimeout(() => {
        this.progressBarWidth = '100%'
        NProgress.done()
      }, 1000)
    }
  }
}
</script>

<style>
  .my-progress-bar {
    position: fixed;
    top: 0;
    left: 0;
    height: 2px;
    background-color: blue;
    z-index: 9999999;
    transition: 0.3s;
  }
</style>

以上代碼實現了在應用程序中控制進度條的方法:頁面路由發生變化時,自動控制進度條的顯示和隱藏。

四、使用進度條實現App端的加載動畫

我們可以使用 `nprogress` 庫提供的 `inc(time)` 方法,來實現一個自定義的進度條加載動畫。下面的代碼展示了如何使用 `nprogress` 庫來實現App端啟動頁的加載動畫:

在啟動頁的組件中引入 `nprogress` 庫:

// src/views/Startup.vue
import NProgress from 'nprogress'
import 'nprogress/nprogress.css'
NProgress.configure({ showSpinner: false })

export default {
  name: 'Startup',
  beforeMount() {
    this.updateProgress()
  },
  methods: {
    updateProgress() {
      NProgress.inc(0.1)
      if (NProgress.status === 1) {
        NProgress.done()
        this.$router.push('/home')
      } else {
        setTimeout(() => {
          this.updateProgress()
        }, 400)
      }
    }
  }
}

這個代碼塊中,原本打算直接重定向到 `home` 頁面,然而通過 `updateProgress` 方法更新右上角的進度條的時候,等到進度條增加到 `1` 時再進行重定向。

好了,到這裡我們已經講了四個實例,基本上涵蓋了Vue進度條的使用方法。手寫進度條不是很複雜,但使用 `nprogress` 庫能極大地方便我們的開發,提高代碼的簡潔性和可讀性。希望同學們在實際項目中,結合自己的情況來使用Vue進度條,提高用戶體驗,美化你的應用程序。

原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/309429.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
小藍的頭像小藍
上一篇 2025-01-04 19:31
下一篇 2025-01-04 19:31

相關推薦

  • Python中init方法的作用及使用方法

    Python中的init方法是一個類的構造函數,在創建對象時被調用。在本篇文章中,我們將從多個方面詳細討論init方法的作用,使用方法以及注意點。 一、定義init方法 在Pyth…

    編程 2025-04-29
  • 使用Vue實現前端AES加密並輸出為十六進制的方法

    在前端開發中,數據傳輸的安全性問題十分重要,其中一種保護數據安全的方式是加密。本文將會介紹如何使用Vue框架實現前端AES加密並將加密結果輸出為十六進制。 一、AES加密介紹 AE…

    編程 2025-04-29
  • Python符號定義和使用方法

    本文將從多個方面介紹Python符號的定義和使用方法,涉及注釋、變量、運算符、條件語句和循環等多個方面。 一、注釋 1、單行注釋 # 這是一條單行注釋 2、多行注釋 “”” 這是一…

    編程 2025-04-29
  • Python下載到桌面圖標使用方法用法介紹

    Python是一種高級編程語言,非常適合初學者,同時也深受老手喜愛。在Python中,如果我們想要將某個程序下載到桌面上,需要注意一些細節。本文將從多個方面對Python下載到桌面…

    編程 2025-04-29
  • Python匿名變量的使用方法

    Python中的匿名變量是指使用“_”來代替變量名的特殊變量。這篇文章將從多個方面介紹匿名變量的使用方法。 一、作為佔位符 匿名變量通常用作佔位符,用於代替一個不需要使用的變量。例…

    編程 2025-04-29
  • Vue TS工程結構用法介紹

    在本篇文章中,我們將從多個方面對Vue TS工程結構進行詳細的闡述,涵蓋文件結構、路由配置、組件間通訊、狀態管理等內容,並給出對應的代碼示例。 一、文件結構 一個好的文件結構可以極…

    編程 2025-04-29
  • 百度地區熱力圖的介紹和使用方法

    本文將詳細介紹百度地區熱力圖的使用方法和相關知識。 一、什麼是百度地區熱力圖 百度地區熱力圖是一種用於展示區域內某種數據分布情況的地圖呈現方式。它通過一張地圖上不同區域的顏色深淺,…

    編程 2025-04-29
  • Matlab中addpath的使用方法

    addpath函數是Matlab中的一個非常常用的函數,它可以在Matlab環境中增加一個或者多個文件夾的路徑,使得Matlab可以在需要時自動搜索到這些文件夾中的函數。因此,學會…

    編程 2025-04-29
  • Python函數重載的使用方法和注意事項

    Python是一種動態語言,它的函數重載特性有些不同於靜態語言,本文將會從使用方法、注意事項等多個方面詳細闡述Python函數重載,幫助讀者更好地應用Python函數重載。 一、基…

    編程 2025-04-28
  • Python同步賦值語句的使用方法和注意事項

    Python同步賦值語句是Python中用來同時為多個變量賦值的一種方法。通過這種方式,可以很方便地同時為多個變量賦值,從而提高代碼的可讀性和編寫效率。下面從多個方面詳細介紹Pyt…

    編程 2025-04-28

發表回復

登錄後才能評論