Frontend Academy · Lektion

Filbaserad routing och automatiska importer

Skapa sidor i katalogen pages/ för automatisk routing, förstå dynamiska segment och använd Nuxts automatiska importer för komponenter och composables.

Lektion 1 av 414 steg

Filbaserad routing och automatiska importer är en gratis lektion i Frontend Academy på CoddyKit. Detta är lektion 1 av 4. Ni kan läsa hela lektionen gratis nedan och sedan öva praktiskt i webbläsaren med en inbyggd kodredigerare och en AI-handledare som är tillgänglig dygnet runt. Den ingår i lärvägen för Frontend Academy, och Era framsteg synkroniseras mellan webben och CoddyKit-appen. Kursen i Frontend Academy innehåller totalt 4 lektioner.

Nuxt 3 — Vues SSR-ramverk

Nuxt 3 är för Vue vad Next.js är för React: ett konventionsstyrt ramverk för SSR, SSG, filbaserad routning, datahämtning och ett omfattande system för automatiska importer.

pages/-katalogen

Lägg Vue-komponenter i pages/ så blir de rutter — ingen router-konfiguration behövs.

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

Dynamiska rutter med [param]

Hakparenteser i filnamn skapar dynamiska segment. Åtkomst till parametrar sker 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-rutter

Använd [...slug].vue för catch-all-rutter — den matchar alla sökvägar under den mappen.

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

Layouter

Komponenter i layouts/ omsluter sidor. Ange aktiv layout per sida 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 används för alla sidor utan en angiven layout.

Navigering med NuxtLink

Använd <NuxtLink> för klientnavigering — Nuxt förhämtar länkade sidor när pekaren förs över länken.

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

Programmatisk navigering

Använd navigateTo() i setup eller event handlers.

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

Automatiska importer — komponenter

Lägg en komponent i components/ och använd den i valfri mall utan att importera den — Nuxt genomsöker och registrerar komponenterna.

components/
  AppHeader.vue
  UserCard.vue

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

Automatiska importer — composables

Composables i composables/ importeras automatiskt.

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

Automatiska importer — verktyg

Vue-verktyg (ref, reactive, computed, watch osv.) och Nuxt-verktyg (useFetch, useState, navigateTo) importeras automatiskt.

Inaktivera automatiska importer

Du kan inaktivera en specifik automatisk import i nuxt.config.ts om den krockar med något annat.

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

Snabbtest

Hur skapar man en rutt i Nuxt 3 som matchar alla sökvägar under /docs/?

Sammanfattning: Routning och automatiska importer

Mappen pages/ skapar rutter. [param] används för dynamiska rutter och [...slug] för catch-all. Layouter i layouts/ väljs via definePageMeta. NuxtLink och navigateTo används för navigering. Automatiska importer gäller för components/, composables/ samt Vue- och Nuxt-verktyg — inga manuella importer behövs. Inaktivera dem i nuxt.config.ts vid behov.

Gratis att börja

Lär dig HTML med en AI-lärare – gratis

Skriv och kör riktig kod i webbläsaren, få omedelbar hjälp av en AI-lärare dygnet runt och fortsätt där du slutade – på webben eller i appen.

Kurser
41
Lektioner
163

Vanliga frågor

Är lektionen ”Filbaserad routing och automatiska importer” gratis?

Ja – hela texten till ”Filbaserad routing och automatiska importer” kan läsas gratis här på webben. Om Ni vill öva interaktivt med en inbyggd kodredigerare och en AI-handledare som är tillgänglig dygnet runt och låsa upp resten av kursen i Frontend Academy, kan Ni uppgradera till CoddyKit PRO. Kursen i Frontend Academy innehåller totalt 4 lektioner.

Vad lär jag mig i ”Filbaserad routing och automatiska importer”?

Skapa sidor i katalogen pages/ för automatisk routing, förstå dynamiska segment och använd Nuxts automatiska importer för komponenter och composables. Ni övar på Frontend Academy med praktisk kod som körs direkt i webbläsaren, medan en AI-handledare som är tillgänglig dygnet runt svarar på Era frågor under lektionen.

Behöver jag någon erfarenhet för att börja lära mig Frontend Academy?

Du behöver inga förkunskaper. Utbildningen i Frontend Academy på CoddyKit är upplagd för allt från nybörjare till avancerade elever, så att du kan börja här eller från början och gå fram i din egen takt. Detta är lektion 1 av 4.

Hur lång tid tar lektionen ”Filbaserad routing och automatiska importer”?

De flesta CoddyKit-lektioner tar cirka 5–10 minuter. Varje lektion är kort och interaktiv, så att du gör stadiga framsteg och kan fortsätta precis där du slutade – på webben eller i appen.

Kan jag skriva och köra kod i den här Frontend Academy-lektionen?

Ja. Varje Frontend Academy-lektion innehåller en inbyggd kodredigerare, så att du kan skriva och köra riktig kod direkt i webbläsaren och få omedelbar AI-feedback – utan lokal installation.

Alla lektioner i den här kursen

  1. Filbaserad routing och automatiska importer
  2. useFetch och useAsyncData
  3. Nuxt-moduler: Image, Auth och i18n
  4. Driftsättning: statiskt kontra SSR
← Tillbaka till Frontend Academy