РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
⊗ppinSpRqIn 55 of 112 menu
◀ ▶

Мгновенный переход в Inertia

Давайте рассмотрим ситуацию, когда человек уходит с главной на панель, а тяжёлые цифры с сервера ещё не пришли. Ждать пустой экран неудобно: адрес и имя компонента уже известны, и каркас панели можно показать сразу, подставив полные пропсы, когда запрос завершится.

Для такого приёма метод visit у объекта router принимает опцию component с именем целевой страницы. Inertia сразу рисует этот компонент, а запрос к Laravel уходит в фоне. Общие пропсы с текущей страницы переносятся сами, а пропсы, которые отдаёт только целевой маршрут, появятся после ответа. Целевой компонент должен терпеть их отсутствие: условный вывод или необязательная цепочка в шаблоне не дадут упасть на промежуточном кадре.

Давайте опишем главную и панель с цифрами:

<?php use Illuminate\Support\Facades\Route; use Inertia\Inertia; Route::get('/', function () { return Inertia::render('Home'); }); Route::get('/dashboard', function () { return Inertia::render('Dashboard', [ 'stats' => ['visits' => 128], ]); }); ?>

Давайте добавим кнопку перехода с опцией component и выведем цифры, когда они уже пришли:

<script setup> import { router } from '@inertiajs/vue3' function openDashboard() { router.visit('/dashboard', { component: 'Dashboard', }) } </script> <template> <h1>Home</h1> <button type="button" @click="openDashboard"> Dashboard </button> </template>
<script setup> defineProps({ stats: Object, }) </script> <template> <h1>Dashboard</h1> <p v-if="stats"> Visits: {{ stats.visits }} </p> <p v-else>Loading stats...</p> </template>

Сделайте страницу Crew с переходом на экран Roster так, чтобы каркас Roster появлялся сразу, а список имён подставлялся после ответа сервера.

← →
↑
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить