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

Навигация в Inertia

Давайте рассмотрим ситуацию, когда в подвале нужно показывать текущий адрес страницы, и строка должна обновляться не только после нового ответа сервера, но и когда человек нажимает «назад» и Inertia восстанавливает снимок из истории без запроса.

Событие navigate срабатывает при успешной смене страницы и при навигации по истории. Оно шире, чем success, которое не вызывается на чисто историческом переходе. В обработчике снова доступен объект страницы с актуальным адресом.

Давайте отдадим список и страницу архива:

<?php use Illuminate\Support\Facades\Route; use Inertia\Inertia; Route::get('/posts', function () { return Inertia::render('Posts/Index', [ 'title' => 'Posts', ]); }); Route::get('/posts/archive', function () { return Inertia::render('Posts/Archive', [ 'title' => 'Archive', ]); }); ?>

Давайте запишем последний адрес из navigate в общий ref:

import { router } from '@inertiajs/vue3' import { ref } from 'vue' export const lastUrl = ref('') router.on('navigate', (event) => { lastUrl.value = event.detail.page.url })

Давайте выведем заголовок, ссылку и строку адреса внизу экрана:

<script setup> import { Link } from '@inertiajs/vue3' import { lastUrl } from '../../app.js' defineProps({ title: String, }) </script> <template> <h1>{{ title }}</h1> <Link href="/posts/archive"> Open archive </Link> <footer v-if="lastUrl"> {{ lastUrl }} </footer> </template>

Сделайте переход к отчёту работника Omar так, чтобы подвал показывал актуальный адрес и после ссылки, и после возврата кнопкой «назад» в браузере.

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