Frontend Academy · Lektion

Filbaseret routing og auto-imports

Opret sider i pages/-mappen til automatisk routing, forstå dynamiske segmenter, og benyt Nuxts auto-imports til komponenter og composables.

Lektion 1 af 414 trin

Filbaseret routing og auto-imports er en gratis Frontend Academy-lektion på CoddyKit. Dette er lektion 1 af 4. Du kan læse hele lektionen gratis nedenfor — og derefter øve dig praktisk i browseren med en indbygget kodeeditor og en AI-vejleder, der er tilgængelig døgnet rundt. Den er en del af læringsforløbet i Frontend Academy, og dine fremskridt synkroniseres på tværs af nettet og CoddyKit-appen. Frontend Academy-kurset indeholder 4 lektioner i alt.

Nuxt 3 — Vues SSR-framework

Nuxt 3 er for Vue, hvad Next.js er for React: et holdningsbaseret framework til SSR, SSG, filbaseret routing, datahentning og et omfattende system til automatisk import.

pages/-mappen

Placér Vue-komponenter i pages/, så bliver de til ruter — der er ikke brug for router-konfiguration.

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

Dynamiske ruter med [param]

Kantede parenteser i filnavne opretter dynamiske segmenter. Få adgang til parametre med 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>

Catch-all-ruter

Brug [...slug].vue til catch-all-ruter — den matcher alle stier under den pågældende mappe.

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

Komponenter i layouts/ omslutter sider. Angiv det aktive layout pr. side med definePageMeta.

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

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

Standardlayout

layouts/default.vue anvendes på alle sider uden et angivet layout.

Navigation med NuxtLink

Brug <NuxtLink> til navigation på klienten — Nuxt forhenter linkede sider, når du holder musen over dem.

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

Programmatisk navigation

Brug navigateTo() i setup eller hændelseshåndterere.

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

Automatiske importer — komponenter

Placér en komponent i components/, og brug den i enhver skabelon uden at importere den — Nuxt scanner og registrerer komponenterne.

components/
  AppHeader.vue
  UserCard.vue

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

Automatiske importer — composables

Composables i composables/ importeres automatisk.

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

Automatiske importer — hjælpefunktioner

Vue-hjælpefunktioner (ref, reactive, computed, watch osv.) og Nuxt-hjælpefunktioner (useFetch, useState, navigateTo) importeres automatisk.

Deaktivér automatiske importer

Du kan deaktivere en bestemt automatisk import i nuxt.config.ts, hvis den kolliderer med noget andet.

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

Hurtigt tjek

Hvordan opretter du en rute i Nuxt 3, der matcher alle stier under /docs/?

Opsummering: routing og automatiske importer

pages/-mappen opretter ruter. [param] bruges til dynamiske ruter, og [...slug] til catch-all. Layouts i layouts/ vælges via definePageMeta. Brug NuxtLink og navigateTo til navigation. Komponenter, composables samt Vue- og Nuxt-hjælpefunktioner importeres automatisk — ingen manuelle importer. Deaktivér det i nuxt.config.ts efter behov.

Gratis at komme i gang

Lær HTML med en AI-underviser — gratis

Skriv og kør rigtig kode i din browser, få øjeblikkelig hjælp fra en AI-underviser døgnet rundt, og fortsæt, hvor du slap, på web eller i appen.

Kurser
41
Lektioner
163

Ofte stillede spørgsmål

Er lektionen “Filbaseret routing og auto-imports” gratis?

Ja — hele teksten til “Filbaseret routing og auto-imports” kan læses gratis her på nettet. Hvis du vil øve dig interaktivt med en indbygget kodeeditor og en AI-vejleder døgnet rundt og få adgang til resten af Frontend Academy-kurset, skal du opgradere til CoddyKit PRO. Frontend Academy-kurset indeholder 4 lektioner i alt.

Hvad lærer jeg i “Filbaseret routing og auto-imports”?

Opret sider i pages/-mappen til automatisk routing, forstå dynamiske segmenter, og benyt Nuxts auto-imports til komponenter og composables. Du øver dig i Frontend Academy med praktisk kode, som du kører direkte i browseren, og en AI-vejleder døgnet rundt besvarer dine spørgsmål, mens du arbejder dig gennem lektionen.

Skal jeg have erfaring for at begynde på Frontend Academy?

Der kræves ingen tidligere erfaring. Frontend Academy på CoddyKit er tilrettelagt for både begyndere og øvede, så du kan starte her eller fra begyndelsen og lære i dit eget tempo. Dette er lektion 1 af 4.

Hvor lang tid tager lektionen “Filbaseret routing og auto-imports”?

De fleste CoddyKit-lektioner tager cirka 5–10 minutter. Hver lektion er kort og interaktiv, så du gør løbende fremskridt og kan fortsætte, hvor du slap – på både web og app.

Kan jeg skrive og køre kode i denne Frontend Academy-lektion?

Ja. Alle Frontend Academy-lektioner har en indbygget kodeeditor, så du kan skrive og køre rigtig kode direkte i din browser og få øjeblikkelig feedback fra AI – uden lokal opsætning.

Alle lektioner i dette kursus

  1. Filbaseret routing og auto-imports
  2. useFetch og useAsyncData
  3. Nuxt-moduler: Image, Auth og i18n
  4. Deployment: statisk kontra SSR
← Tilbage til Frontend Academy