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,
// Вот как рассчитывается прогресс по умолчанию:
estimatedProgress: (duration, elapsed) => (2 / Math.PI * 100) * Math.atan(elapsed / duration * 100 / 50)
})
</script>