파일 기반 라우팅과 자동 가져오기
pages/ 디렉터리에 페이지를 만들어 라우팅을 자동화하고, 동적 세그먼트를 이해하며, 컴포넌트와 컴포저블에는 Nuxt의 자동 가져오기를 활용합니다.
파일 기반 라우팅과 자동 가져오기은(는) CoddyKit의 무료 Frontend Academy 강의입니다. 이것은 4개 중 1번째 강의입니다. 아래에서 전체 강의를 무료로 읽을 수 있으며, 내장 코드 에디터와 24/7 AI 튜터와 함께 브라우저에서 직접 실습할 수 있습니다. 이 강의는 Frontend Academy 학습 경로의 일부이며, 진행 상황이 웹과 CoddyKit 앱에 동기화됩니다. Frontend Academy 강의에는 총 4개의 강의가 포함되어 있습니다.
Nuxt 3 — Vue의 SSR 프레임워크
Nuxt 3는 Vue에서 Next.js가 React에 해당하는 프레임워크입니다. SSR, SSG, 파일 기반 라우팅, 데이터 가져오기, 강력한 자동 가져오기 시스템을 지원하며 정해진 방식을 따르는 프레임워크입니다.
pages/ 디렉터리
pages/에 Vue 컴포넌트를 넣으면 라우터 설정 없이 라우트가 됩니다.
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>프로그래밍 방식 탐색
setup 또는 이벤트 처리기에서 navigateTo()를 사용하십시오.
<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에서 비활성화하십시오.
자주 묻는 질문
“파일 기반 라우팅과 자동 가져오기” 강의는 무료인가요?
네 — “파일 기반 라우팅과 자동 가져오기” 전체 내용을 이 웹사이트에서 무료로 읽을 수 있습니다. 인터랙티브하게 실습하려면(내장 코드 에디터와 24/7 AI 튜터), CoddyKit PRO로 업그레이드하면 Frontend Academy 강의 전체를 잠금 해제할 수 있습니다. Frontend Academy 강의에는 총 4개의 강의가 포함되어 있습니다.
“파일 기반 라우팅과 자동 가져오기”에서 뭘 배우나요?
pages/ 디렉터리에 페이지를 만들어 라우팅을 자동화하고, 동적 세그먼트를 이해하며, 컴포넌트와 컴포저블에는 Nuxt의 자동 가져오기를 활용합니다. 브라우저에서 직접 실행하는 실습 코드로 Frontend Academy을(를) 배우며, 24/7 AI 튜터가 강의를 진행하면서 질문에 답변해줍니다.
Frontend Academy을(를) 시작하는 데 경험이 필요한가요?
사전 경험은 필요하지 않습니다. CoddyKit의 Frontend Academy은(는) 초급자부터 고급 학습자까지를 위해 구성되어 있으므로, 여기서 시작하거나 처음부터 시작할 수 있으며 자신의 속도대로 진행할 수 있습니다. 이것은 4개 중 1번째 강의입니다.
“파일 기반 라우팅과 자동 가져오기” 강의는 얼마나 걸리나요?
대부분의 CoddyKit 강의는 약 5~10분이 소요됩니다. 각 강의는 간결하고 인터랙티브하여 꾸준한 진행이 가능하며, 웹과 앱에서 중단한 부분부터 바로 시작할 수 있습니다.
이 Frontend Academy 강의에서 코드를 작성하고 실행할 수 있나요?
네. 모든 Frontend Academy 강의에는 내장 코드 에디터가 포함되어 있으므로, 브라우저에서 바로 실제 코드를 작성하고 실행한 후 즉시 AI 피드백을 받을 수 있습니다 — 로컬 설정이 필요 없습니다.
이 강의의 모든 강의
- 파일 기반 라우팅과 자동 가져오기
- useFetch와 useAsyncData
- Nuxt 모듈: 이미지, 인증, 다국어
- 배포: 정적 사이트와 SSR 비교