0Pricing
Frontend Academy · 강의

파일 기반 라우팅과 자동 가져오기

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 피드백을 받을 수 있습니다 — 로컬 설정이 필요 없습니다.

이 강의의 모든 강의

  1. 파일 기반 라우팅과 자동 가져오기
  2. useFetch와 useAsyncData
  3. Nuxt 모듈: 이미지, 인증, 다국어
  4. 배포: 정적 사이트와 SSR 비교
← Frontend Academy(으)로 돌아가기