Скрытие индикатора в Inertia
Пусть панель постов каждые
несколько секунд тихо
обновляет счётчик комментариев
методом get у router.
Ответ приходит быстро,
а полоска у верхнего края
на таком фоне только мешает:
экран не меняется, и индикатор
выглядит лишним.
Для отдельного визита Inertia
даёт опцию showProgress.
Если передать ей значение
false во втором наборе
настроек визита, полоска
для этого запроса не появится.
Остальные переходы по ссылкам
и кнопкам по-прежнему могут
её показывать.
Давайте опишем страницу с панелью:
<?php
use Illuminate\Support\Facades\Route;
use Inertia\Inertia;
Route::get('/posts/dashboard', function () {
return Inertia::render('Posts/Dashboard', [
'commentsCount' => 12,
]);
});
?>
Давайте по таймеру запросим свежий счётчик без индикатора:
<script setup>
import { onMounted, onUnmounted } from 'vue'
import { router } from '@inertiajs/vue3'
defineProps({
commentsCount: Number,
})
let timer = null
onMounted(() => {
timer = setInterval(() => {
router.get('/posts/dashboard', {}, {
showProgress: false,
})
}, 5000)
})
onUnmounted(() => {
clearInterval(timer)
})
</script>
<template>
<h1>Dashboard</h1>
<p>Comments: {{ commentsCount }}</p>
</template>
На экране работника Leo раз в десять секунд обновляйте число задач без полоски у верхнего края окна.