Файловая маршрутизация и автоматические импорты
Создавайте страницы в каталоге pages/ для автоматической маршрутизации, изучайте динамические сегменты и используйте автоматические импорты Nuxt для компонентов и композаблов
«Файловая маршрутизация и автоматические импорты» — бесплатный урок Frontend Academy на CoddyKit. Это урок 1 из 4. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения Frontend Academy, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс Frontend Academy содержит 4 уроков всего.
Nuxt 3 — SSR-фреймворк для Vue
Nuxt 3 для Vue — то же, что Next.js для React: фреймворк с заданными соглашениями для SSR, SSG, маршрутизации на основе файлов, получения данных и глубокой системы автоматического импорта.
Каталог pages/
Поместите компоненты Vue в pages/, и они станут маршрутами — настройка маршрутизатора не требуется.
pages/
index.vue // route: /
about.vue // route: /about
blog/
index.vue // route: /blog
[slug].vue // route: /blog/:slug
users/
[id]/
profile.vue // route: /users/:id/profileДинамические маршруты с [param]
Квадратные скобки в именах файлов создают динамические сегменты. Получайте параметры с помощью useRoute().
<!-- pages/blog/[slug].vue -->
<script setup>
const route = useRoute();
const { data: post } = await useFetch(`/api/posts/${route.params.slug}`);
</script>
<template>
<article>
<h1>{{ post.title }}</h1>
<div v-html="post.body" />
</article>
</template>Маршруты для любых вложенных путей
Используйте [...slug].vue для маршрутов, охватывающих любые вложенные пути, — такой маршрут соответствует любому пути внутри этой папки.
// pages/docs/[...slug].vue
// matches /docs/getting-started, /docs/api/auth, etc.
<script setup>
const route = useRoute();
console.log(route.params.slug); // ['api', 'auth']
</script>Макеты
Компоненты в layouts/ оборачивают страницы. Выбирайте активный макет для каждой страницы с помощью definePageMeta.
<!-- layouts/dashboard.vue -->
<template>
<div class="dashboard">
<Sidebar />
<main><slot /></main>
</div>
</template>
<!-- pages/dashboard/index.vue -->
<script setup>
definePageMeta({ layout: 'dashboard' });
</script>Макет по умолчанию
layouts/default.vue применяется к любой странице, для которой не указан макет.
Навигация с помощью NuxtLink
Используйте <NuxtLink> для навигации на стороне клиента — Nuxt предварительно получает связанные страницы при наведении.
<template>
<nav>
<NuxtLink to="/">Home</NuxtLink>
<NuxtLink to="/blog">Blog</NuxtLink>
<NuxtLink :to="`/users/${userId}`">Profile</NuxtLink>
</nav>
</template>Программная навигация
Используйте navigateTo() в setup или обработчиках событий.
<script setup>
async function onLogin() {
await login(form);
await navigateTo('/dashboard');
}
</script>Автоматический импорт — компоненты
Поместите компонент в components/ и используйте его в любом шаблоне без импорта — Nuxt просканирует компоненты и зарегистрирует их.
components/
AppHeader.vue
UserCard.vue
<!-- any page or component: -->
<template>
<AppHeader />
<UserCard :user="user" />
</template>Автоматический импорт — композаблы
Композаблы в composables/ импортируются автоматически.
// composables/useCounter.ts
export const useCounter = () => {
const count = ref(0);
const increment = () => count.value++;
return { count, increment };
};
<!-- any component: -->
<script setup>
const { count, increment } = useCounter(); // no import needed!
</script>Автоматический импорт — утилиты
Утилиты Vue (ref, reactive, computed, watch и т. д.) и утилиты Nuxt (useFetch, useState, navigateTo) импортируются автоматически.
Отключение автоматического импорта
Вы можете отключить конкретный автоматический импорт в nuxt.config.ts, если он конфликтует с чем-либо ещё.
export default defineNuxtConfig({
imports: {
autoImport: false // disable all auto-imports
}
});Быстрая проверка
Как создать в Nuxt 3 маршрут, соответствующий любому пути внутри /docs/?
Итоги: маршрутизация и автоматический импорт
Папка pages/ создаёт маршруты. [param] используется для динамических маршрутов, [...slug] — для маршрутов, охватывающих любые вложенные пути. Макеты в layouts/ выбираются с помощью definePageMeta. NuxtLink и navigateTo используются для навигации. Компоненты, composables/, а также утилиты Vue и Nuxt импортируются автоматически — ручной импорт не нужен. При необходимости отключите его в nuxt.config.ts.
Изучай HTML с ИИ-репетитором — бесплатно
Пиши и запускай код прямо в браузере, получай мгновенную помощь от ИИ-репетитора 24/7 и продолжи учиться на сайте или в приложении.
- Курсы
- 41
- Уроки
- 163
Часто задаваемые вопросы
Урок «Файловая маршрутизация и автоматические импорты» бесплатный?
Да — полный текст урока «Файловая маршрутизация и автоматические импорты» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс Frontend Academy, подпишись на CoddyKit PRO. Курс Frontend Academy содержит 4 уроков всего.
Чему я научусь в уроке «Файловая маршрутизация и автоматические импорты»?
Создавайте страницы в каталоге pages/ для автоматической маршрутизации, изучайте динамические сегменты и используйте автоматические импорты Nuxt для компонентов и композаблов Ты практикуешь Frontend Academy с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.
Нужен ли мне опыт, чтобы начать Frontend Academy?
Предыдущий опыт не требуется. Frontend Academy на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 1 из 4.
Сколько времени занимает урок «Файловая маршрутизация и автоматические импорты»?
Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.
Можно ли писать и запускать код в этом уроке Frontend Academy?
Да. Каждый урок Frontend Academy включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.
Все уроки этого курса
- Файловая маршрутизация и автоматические импорты
- useFetch и useAsyncData
- Модули Nuxt: изображения, аутентификация и интернационализация
- Развёртывание: статика и SSR