0Pricing
Frontend Academy · Lekcja

Routing oparty na plikach i automatyczny import

Utworzy Pan/Pani strony w katalogu pages/ na potrzeby automatycznego routingu, pozna segmenty dynamiczne i wykorzysta automatyczne importy Nuxt dla komponentów oraz composables.

Routing oparty na plikach i automatyczny import to bezpłatna lekcja Frontend Academy na CoddyKit. To lekcja 1 z 4. Możesz przeczytać całą lekcję poniżej za darmo — a potem ćwiczyć ją interaktywnie w przeglądarce z wbudowanym edytorem kodu i tutorem AI dostępnym 24/7. To część ścieżki edukacyjnej Frontend Academy, a Twój postęp synchronizuje się między webem a aplikacją CoddyKit. Kurs Frontend Academy zawiera 4 lekcji w sumie.

Nuxt 3 — framework SSR dla Vue

Nuxt 3 jest dla Vue tym, czym Next.js jest dla Reacta: opiniotwórczym frameworkiem do SSR, SSG, routingu opartego na plikach, pobierania danych i rozbudowanego systemu automatycznych importów.

Katalog pages/

Umieść komponenty Vue w pages/, a staną się trasami — nie trzeba konfigurować routera.

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

Trasy dynamiczne z [param]

Kwadratowe nawiasy w nazwach plików tworzą segmenty dynamiczne. Parametry są dostępne za pomocą 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>

Trasy typu catch-all

Użyj [...slug].vue dla tras typu catch-all — dopasowują one każdą ścieżkę znajdującą się w tym folderze.

// 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>

Layouty

Komponenty w layouts/ opakowują strony. Aktywny layout dla strony ustaw za pomocą definePageMeta.

<!-- layouts/dashboard.vue -->
<template>
  <div class="dashboard">
    <Sidebar />
    <main><slot /></main>
  </div>
</template>

<!-- pages/dashboard/index.vue -->
<script setup>
definePageMeta({ layout: 'dashboard' });
</script>

Domyślny layout

layouts/default.vue jest stosowany do każdej strony, dla której nie określono layoutu.

Nawigacja za pomocą NuxtLink

Użyj <NuxtLink> do nawigacji po stronie klienta — Nuxt pobiera wstępnie powiązane strony po najechaniu kursorem.

<template>
  <nav>
    <NuxtLink to="/">Home</NuxtLink>
    <NuxtLink to="/blog">Blog</NuxtLink>
    <NuxtLink :to="`/users/${userId}`">Profile</NuxtLink>
  </nav>
</template>

Nawigacja programowa

Użyj navigateTo() w setup lub handlerach zdarzeń.

<script setup>
async function onLogin() {
  await login(form);
  await navigateTo('/dashboard');
}
</script>

Automatyczne importy — komponenty

Umieść komponent w components/ i używaj go w dowolnym szablonie bez importowania — Nuxt skanuje je i rejestruje.

components/
  AppHeader.vue
  UserCard.vue

<!-- any page or component: -->
<template>
  <AppHeader />
  <UserCard :user="user" />
</template>

Automatyczne importy — composables

Composables znajdujące się w composables/ są importowane automatycznie.

// 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>

Automatyczne importy — narzędzia

Narzędzia Vue (ref, reactive, computed, watch itd.) oraz narzędzia Nuxt (useFetch, useState, navigateTo) są importowane automatycznie.

Wyłączanie automatycznych importów

Można wyłączyć konkretny automatyczny import w nuxt.config.ts, jeśli powoduje konflikt z czymś innym.

export default defineNuxtConfig({
  imports: {
    autoImport: false // disable all auto-imports
  }
});

Szybki test

Jak utworzyć w Nuxt 3 trasę dopasowującą każdą ścieżkę znajdującą się pod /docs/?

Podsumowanie: routing i automatyczne importy

Folder pages/ tworzy trasy. [param] służy do tras dynamicznych, a [...slug] do tras typu catch-all. Layouty w layouts/ wybiera się za pomocą definePageMeta. Do nawigacji służą NuxtLink i navigateTo. Komponenty, composables oraz narzędzia Vue i Nuxt są importowane automatycznie — nie trzeba dodawać importów ręcznie. W razie potrzeby można wyłączyć tę funkcję w nuxt.config.ts.

Często zadawane pytania

Czy lekcja „Routing oparty na plikach i automatyczny import” jest bezpłatna?

Tak — pełny tekst „Routing oparty na plikach i automatyczny import” jest dostępny za darmo tutaj w sieci. Aby ćwiczyć ją interaktywnie (wbudowany edytor kodu i tutor AI dostępny 24/7) i odblokować resztę kursu Frontend Academy, przejdź na CoddyKit PRO. Kurs Frontend Academy zawiera 4 lekcji w sumie.

Co nauczysz się w „Routing oparty na plikach i automatyczny import”?

Utworzy Pan/Pani strony w katalogu pages/ na potrzeby automatycznego routingu, pozna segmenty dynamiczne i wykorzysta automatyczne importy Nuxt dla komponentów oraz composables. Ćwiczysz Frontend Academy z praktycznym kodem, który uruchamiasz bezpośrednio w przeglądarce, a tutor AI dostępny 24/7 odpowiada na Twoje pytania podczas pracy nad lekcją.

Czy potrzebuję doświadczenia, aby zacząć Frontend Academy?

Nie wymagamy żadnego doświadczenia. Frontend Academy w CoddyKit jest strukturyzowany dla początkujących i zaawansowanych użytkowników, więc możesz zacząć tutaj lub od początku i uczyć się w swoim tempie. To lekcja 1 z 4.

Ile czasu zajmuje lekcja „Routing oparty na plikach i automatyczny import”?

Większość lekcji CoddyKit trwa około 5–10 minut. Każda lekcja to mały, interaktywny krok, dzięki czemu robisz systematyczne postępy i zawsze wracasz dokładnie do tego samego miejsca — na webie i w aplikacji.

Czy mogę pisać i uruchamiać kod w tej lekcji Frontend Academy?

Tak. Każda lekcja Frontend Academy zawiera wbudowany edytor kodu, więc piszesz i uruchamiasz prawdziwy kod bezpośrednio w przeglądarce i od razu otrzymujesz sprzężenie zwrotne od AI — bez konfiguracji na komputerze.

Wszystkie lekcje w tym kursie

  1. Routing oparty na plikach i automatyczny import
  2. useFetch i useAsyncData
  3. Moduły Nuxt: obrazy, uwierzytelnianie i i18n
  4. Wdrażanie: statyczne a SSR
← Powrót do Frontend Academy