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

Сброс кэша в Inertia

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

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

Давайте опишем список и приём новой записи:

<?php use Illuminate\Http\Request; use Illuminate\Support\Facades\Route; use Inertia\Inertia; Route::get('/posts', function () { return Inertia::render('Posts/Index', [ 'title' => 'Posts', ]); }); Route::post('/posts', function (Request $request) { $request->validate([ 'title' => 'required', ]); return back(); }); ?>

Давайте после сохранения сбросим кэш для списка:

<script setup> import { ref } from 'vue' import { router } from '@inertiajs/vue3' const title = ref('') function save() { router.post('/posts', { title: title.value, }, { onSuccess: () => { router.flush('/posts', { method: 'get', }) }, }) } </script> <template> <h1>New post</h1> <input v-model="title" type="text"> <button type="button" @click="save"> Save </button> </template>

После добавления работника Kate сбросьте предзагрузку для экрана списка работников.

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