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.
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/profileDynamiska 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.
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
- Filbaserad routing och automatiska importer
- useFetch och useAsyncData
- Nuxt-moduler: Image, Auth och i18n
- Driftsättning: statiskt kontra SSR