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

Главное меню сайта в Nuxt

Отдельная ссылка на странице решает локальную задачу, но на сайте почти всегда нужно одно и то же меню: главная, каталог, контакты. Повторять разметку в каждом файле pages неудобно, и при смене пункта пришлось бы править много мест сразу.

Общие части интерфейса выносим в макет. Файл app/layouts/default.vue описывает оболочку по умолчанию: сверху навигация, ниже - содержимое текущей страницы в слоте. Корневой app/app.vue оборачивает NuxtPage в NuxtLayout, и тогда каждая страница автоматически получает этот макет.

Файлы app/pages/index.vue, catalog.vue и contacts.vue должны существовать, чтобы пункты меню вели на реальные адреса. При переходе между ними блок nav остаётся на месте, а в слоте меняется только страница - именно для этого мы используем NuxtLink, а не обычные теги a на свой домен. Список ссылок можно оформить списком ul и li или оставить в строку внутри nav.

Давайте разберём макет с тремя внутренними ссылками на английском:

<template> <div> <nav> <NuxtLink to="/"> Home </NuxtLink> <NuxtLink to="/catalog"> Catalog </NuxtLink> <NuxtLink to="/contacts"> Contacts </NuxtLink> </nav> <slot /> </div> </template>

Дополните макет пунктами меню Workers и Departments с переходами на /workers и /departments.

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