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

Посредник страницы в Nuxt

Перед показом страницы Nuxt может вызвать вашу функцию проверки. Её кладут в app/middleware, а страница ссылается на имя файла без расширения. Так же, как поле layout в definePageMeta, поле middleware связывает конкретный экран с одним посредником.

Давайте разберём минимальную связку: файл gate.js и страница desk.vue. Посредник получает объект целевого маршрута to и может прочитать to.path. Пока он ничего не возвращает, переход не прерывается и страница открывается как обычно. Редирект через функцию navigateTo разберём отдельно в этом разделе.

Чтобы результат проверки был виден на экране, посредник запишет путь в общее состояние useState, а страница выведет его в шаблоне:

  • /app/
    • /middleware/
      • gate.js
    • /pages/
      • desk.vue

Код посредника:

export default defineNuxtRouteMiddleware((to) => { const gatePath = useState('gatePath', () => ''); gatePath.value = to.path; });

При переходе на /desk сначала отработает gate.js, затем смонтируется шаблон. Имя gate в definePageMeta совпадает с gate.js. Подключим посредник на странице и покажем сохранённый путь:

<script setup> definePageMeta({ middleware: 'gate', }); const gatePath = useState('gatePath'); </script> <template> <h1> Desk </h1> <p> Middleware path: {{ gatePath }} </p> </template>

Сделайте посредник staff и подключите его к странице работников так, чтобы при открытии адреса работников страница всё равно отображалась.

На той же странице работников выведите в шаблоне путь, который посредник прочитал из to.path, через общее состояние.

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