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値の増加を開始します。startは、間隔をスキップしてすぐに読み込み状態を表示するための{ force: true }オプションを受け入れます。

set()

progress値を特定の値に設定します。setは、間隔をスキップしてすぐに読み込み状態を表示するための{ force: true }オプションを受け入れます。

finish()

progress値を100に設定し、すべてのタイマーと間隔を停止してから、500ミリ秒後に読み込み状態をリセットします。finishは、状態がリセットされる前に間隔をスキップするための{ force: true }オプションと、ローディングバーの色を変更しエラープロパティをtrueに設定するための{ error: 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>
<script setup lang="ts">
const { start, set } = useLoadingIndicator()
// same as set(0, { force: true })
// set the progress to 0, and show loading immediately
start({ force: true })
</script>