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

Отложенный пропс в Inertia

Давайте познакомимся с методом defer на стороне Laravel. Он оборачивает замыкание с данными пропса: первый ответ рисует страницу без этого поля, а Inertia сразу после отправляет отдельный запрос и подставляет значение, когда оно готово.

Так ускоряют первый кадр, если выборка тяжёлая, а остальные пропсы нужны сразу. На Vue пропс объявляют как обычно и показывают блок условием, пока массив ещё не пришёл.

Давайте отдадим пользователей сразу, а права отложим:

<?php use Illuminate\Support\Facades\Route; use Inertia\Inertia; Route::get('/users', function () { return Inertia::render('Users/Index', [ 'users' => ['Anna', 'Boris'], 'permissions' => Inertia::defer( fn () => ['edit', 'publish'], ), ]); }); ?>

Давайте выведем список и блок прав после догрузки:

<script setup> defineProps({ users: Array, permissions: Array, }) </script> <template> <ul> <li v-for="user in users" :key="user"> {{ user }} </li> </ul> <ul v-if="permissions"> <li v-for="permission in permissions" :key="permission" > {{ permission }} </li> </ul> </template>

Сделайте страницу работников с пропсом roles, который приходит после первого экрана, и выведите роли списком, когда они появятся.

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