Запоминание состояния в Inertia
Давайте теперь представим длинную форму поста: человек уже набрал заголовок, перешёл проверить справку в другом разделе и нажал «назад». Пропсы с сервера те же, а поле заголовка пустое, потому что Vue заново создал локальное состояние.
Хелпер useRemember из пакета
@inertiajs/vue3 оборачивает
объект с полями формы.
При каждом изменении клиент
кладёт копию в запись истории
текущего адреса, а при возврате
подставляет сохранённые значения
вместо начальных.
Давайте опишем адрес создания поста:
<?php
use Illuminate\Support\Facades\Route;
use Inertia\Inertia;
Route::get('/posts/create', function () {
return Inertia::render('Posts/Create');
});
?>
Давайте запомним заголовок между визитами на этот экран:
<script setup>
import { useRemember } from '@inertiajs/vue3'
const form = useRemember({
title: '',
})
</script>
<template>
<h1>New post</h1>
<input
type="text"
v-model="form.title"
/>
</template>
На форме найма работника Clara сохраняйте поле должности между уходом на другой экран и возвратом «назад», чтобы введённый текст не пропадал.