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

Замена записи в истории в Inertia

Давайте теперь представим цепочку: человек открыл список постов, зашёл в черновик, а после сохранения должен оказаться на готовой записи. Промежуточный экран черновика в истории ему не нужен - кнопка «назад» не должна возвращать на форму, которую уже закрыли.

Обычный визит добавляет новую запись в history браузера. Атрибут replace у Link меняет поведение: вместо pushState вызывается replaceState, и текущий адрес в стеке подменяется, а не дополняется.

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

<?php use Illuminate\Support\Facades\Route; use Inertia\Inertia; Route::get('/posts/draft', function () { return Inertia::render('Posts/Draft', [ 'title' => 'Draft', ]); }); Route::get('/posts/42', function () { return Inertia::render('Posts/Show', [ 'title' => 'Post #42', ]); }); ?>

Давайте на черновике поставим ссылку на запись с заменой истории:

<script setup> import { Link } from '@inertiajs/vue3' defineProps({ title: String, }) </script> <template> <h1>{{ title }}</h1> <Link href="/posts/42" replace> Open published post </Link> </template>

После выбора смены работника Paul откройте его карточку так, чтобы в истории не остался экран выбора смены.

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