Кроме указанных пропсов в Inertia
Давайте теперь представим
страницу отчёта: таблица
users меняется часто,
а блок companies
тяжёлый и на экране уже лежит
актуальная копия. При каждом
обновлении таблицы нет смысла
снова гонять справочник
компаний по сети.
Опция except задаёт
имена пропсов, которые нужно
исключить из ответа. Клиент
оставит старые значения
для них и подменит остальные.
Так же, как с only,
работает слияние на стороне
Inertia после визита на тот
же компонент страницы.
Давайте отдадим оба пропса замыканиями:
<?php
use Illuminate\Support\Facades\Route;
use Inertia\Inertia;
Route::get('/users', function () {
return Inertia::render('Users/Index', [
'users' => fn () => ['Anna', 'Boris'],
'companies' => fn () => ['Acme', 'Globex'],
]);
});
?>
Давайте обновим данные,
исключив пропс companies:
<script setup>
import { router } from '@inertiajs/vue3'
defineProps({
users: Array,
companies: Array,
})
function refreshUsers() {
router.get('/users', {}, {
except: ['companies'],
})
}
</script>
<template>
<button type="button" @click="refreshUsers">
Refresh users
</button>
<ul>
<li v-for="user in users" :key="user">
{{ user }}
</li>
</ul>
<p v-for="company in companies" :key="company">
{{ company }}
</p>
</template>
Сделайте панель склада
с пропсами items
и vendors так, чтобы
обновление затрагивало только
остатки, а поставщики
остались из памяти клиента.