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

Пропс один раз в Inertia

Давайте посмотрим на пропс, который редко меняется, но дорого считать на сервере. Список отделов для формы работника один и тот же на нескольких соседних экранах, и нет смысла готовить его заново при каждом ответе Laravel.

Метод once оборачивает замыкание с данными. Клиент Inertia запоминает полученное значение и на следующих заходах на страницы с тем же пропсом не ждёт повторного расчёта на сервере: поле просто не включают в ответ, а на экране остаётся сохранённое. Пока открыт документ приложения и пропс снова нужен компоненту, память клиента его подставляет.

Давайте отдадим отделы через once вместе с формой:

<?php use Illuminate\Support\Facades\Route; use Inertia\Inertia; Route::get('/workers/create', function () { return Inertia::render('Workers/Create', [ 'departments' => Inertia::once(fn () => [ 'Sales', 'Support', 'Warehouse', ]), ]); }); ?>

Давайте выведем список отделов в выпадающем поле:

<script setup> defineProps({ departments: Array, }) </script> <template> <label> Department <select name="department"> <option v-for="name in departments" :key="name" :value="name" > {{ name }} </option> </select> </label> </template>

Сделайте форму работника Pavel с пропсом shifts, чтобы варианты смен Morning и Evening приходили с сервера один раз и оставались доступны при повторном открытии формы в том же приложении.

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