useLoadingIndicator
這個組合式函式讓您可以存取應用程式頁面的載入狀態。
描述
一個返回頁面載入狀態的組合式函式。由 <NuxtLoadingIndicator>
使用且可控制。它會掛鉤到 page:loading:start
和 page:loading:end
來變更其狀態。
參數
duration
: 載入列的持續時間,以毫秒為單位(預設值為2000
)。throttle
: 顯示和隱藏的節流時間,以毫秒為單位(預設值為200
)。estimatedProgress
: 預設情況下,Nuxt 會在接近 100% 時放緩。您可以提供一個自訂函式來自訂進度估算,該函式會接收載入列的持續時間(如上所述)和經過的時間。它應傳回介於 0 和 100 之間的值。
屬性
isLoading
- 類型:
Ref<boolean>
- 描述: 載入狀態
error
- 類型:
Ref<boolean>
- 描述: 錯誤狀態
progress
- 類型:
Ref<number>
- 描述: 進度狀態。從
0
到100
。
方法
start()
將 isLoading
設定為 true 並開始增加 progress
值。
finish()
將 progress
值設定為 100
,停止所有計時器和間隔,然後在 500
毫秒後重設載入狀態。finish
接受 { force: true }
選項以跳過重設狀態前的間隔,並接受 { error: true }
選項以變更載入列顏色並將錯誤屬性設定為 true。
clear()
由 finish()
使用。清除組合式函式使用的所有計時器和間隔。
範例
<script setup lang="ts">
const { progress, isLoading, start, finish, clear } = useLoadingIndicator({
duration: 2000,
throttle: 200,
// This is how progress is calculated by default
estimatedProgress: (duration, elapsed) => (2 / Math.PI * 100) * Math.atan(elapsed / duration * 100 / 50)
})
</script>