nuxt logo

문서 번역(비공식)

Pages

Nuxt Kit은 페이지를 생성하고 사용하는 데 도움이 되는 유틸리티 세트를 제공합니다. 이러한 유틸리티를 사용하여 페이지 구성을 조작하거나 라우트 규칙을 정의할 수 있습니다.

extendPages

Nuxt에서는 pages 디렉토리의 파일 구조를 기반으로 라우트가 자동으로 생성됩니다. 그러나 이러한 라우트를 사용자 정의해야 하는 시나리오가 있을 수 있습니다. 예를 들어, Nuxt에 의해 생성되지 않은 동적 페이지에 대한 라우트를 추가하거나, 기존 라우트를 제거하거나, 라우트의 구성을 수정해야 할 수 있습니다. 이러한 사용자 정의를 위해 Nuxt는 extendPages 기능을 제공하여 페이지 구성을 확장하고 변경할 수 있습니다.

extendPages에 대한 Vue School 비디오를 시청하세요.

사용법

import { createResolver, defineNuxtModule, extendPages } from '@nuxt/kit'

export default defineNuxtModule({
  setup (options) {
    const { resolve } = createResolver(import.meta.url)

    extendPages((pages) => {
      pages.unshift({
        name: 'prismic-preview',
        path: '/preview',
        file: resolve('runtime/preview.vue'),
      })
    })
  },
})

타입

function extendPages(callback: (pages: NuxtPage[]) => void): void

매개변수

callback: 페이지 구성과 함께 호출되는 함수입니다. 이 배열을 추가, 삭제 또는 수정하여 변경할 수 있습니다. 참고: 제공된 페이지 배열을 직접 수정해야 하며, 복사된 배열에 대한 변경 사항은 구성에 반영되지 않습니다.

속성타입필수설명
namestringfalse라우트의 이름입니다. 프로그래밍 방식의 탐색 및 라우트 식별에 유용합니다.
pathstringfalse라우트 URL 경로입니다. 설정하지 않으면 Nuxt가 파일 위치에서 추론합니다.
filestringfalse라우트의 컴포넌트로 사용될 Vue 파일의 경로입니다.
metaRecord<string, any>false라우트에 대한 사용자 정의 메타데이터입니다. 레이아웃, 미들웨어 또는 네비게이션 가드에서 사용할 수 있습니다.
aliasstring[] | stringfalse라우트에 대한 하나 이상의 별칭 경로입니다. 여러 URL을 지원하는 데 유용합니다.
redirectRouteLocationRawfalse라우트에 대한 리디렉션 규칙입니다. 이름이 지정된 라우트, 객체 또는 문자열 경로를 지원합니다.
childrenNuxtPage[]false레이아웃 또는 뷰 중첩을 위한 이 라우트 아래의 중첩된 자식 라우트입니다.

extendRouteRules

Nuxt는 Nitro 서버 엔진에 의해 구동됩니다. Nitro를 사용하면 리디렉션, 프록시, 캐싱 및 라우트에 헤더 추가와 같은 작업에 유용한 고급 로직을 구성에 직접 통합할 수 있습니다. 이 구성은 특정 라우트 설정과 라우트 패턴을 연결하여 작동합니다.

Nitro 라우트 규칙에 대한 자세한 내용은 Nitro 문서를 참조하세요.

라우트 규칙 및 라우트 미들웨어 추가에 대한 Vue School 비디오를 시청하세요.

사용법

import { createResolver, defineNuxtModule, extendPages, extendRouteRules } from '@nuxt/kit'

export default defineNuxtModule({
  setup (options) {
    const { resolve } = createResolver(import.meta.url)

    extendPages((pages) => {
      pages.unshift({
        name: 'preview-new',
        path: '/preview-new',
        file: resolve('runtime/preview.vue'),
      })
    })

    extendRouteRules('/preview', {
      redirect: {
        to: '/preview-new',
        statusCode: 302,
      },
    })

    extendRouteRules('/preview-new', {
      cache: {
        maxAge: 60 * 60 * 24 * 7,
      },
    })
  },
})

타입

function extendRouteRules(route: string, rule: NitroRouteConfig, options?: ExtendRouteRulesOptions): void

매개변수

route: 일치시킬 라우트 패턴입니다.
rule: 일치하는 라우트에 적용할 라우트 규칙 구성입니다.

라우트 규칙 구성에 대한 자세한 내용은 Hybrid Rendering > Route Rules에서 확인할 수 있습니다.

options: 라우트 구성에 전달할 객체입니다. overridetrue로 설정되면 기존 라우트 구성을 덮어씁니다.

이름타입기본값설명
overridebooleanfalse라우트 규칙 구성을 덮어씁니다. 기본값은 false입니다.

addRouteMiddleware

모든 라우트 또는 특정 라우트에 사용할 수 있는 라우트 미들웨어를 등록합니다.

라우트 미들웨어는 addRouteMiddleware 컴포저블을 통해 플러그인에서도 정의할 수 있습니다.

라우트 미들웨어에 대한 자세한 내용은 Route middleware 문서를 참조하세요.

라우트 규칙 및 라우트 미들웨어 추가에 대한 Vue School 비디오를 시청하세요.

사용법

import { addRouteMiddleware, createResolver, defineNuxtModule } from '@nuxt/kit'

export default defineNuxtModule({
  setup () {
    const { resolve } = createResolver(import.meta.url)

    addRouteMiddleware({
      name: 'auth',
      path: resolve('runtime/auth'),
      global: true,
    }, { prepend: true })
  },
})

타입

function addRouteMiddleware(input: NuxtMiddleware | NuxtMiddleware[], options?: AddRouteMiddlewareOptions): void

매개변수

input: 다음 속성을 가진 미들웨어 객체 또는 미들웨어 객체 배열입니다:

속성타입필수설명
namestringtrue미들웨어의 이름입니다.
pathstringtrue미들웨어의 파일 경로입니다.
globalbooleanfalsetrue로 설정하면 모든 라우트에 미들웨어를 적용합니다.

options: 다음 속성을 가진 객체입니다:

속성타입기본값설명
overridebooleanfalse동일한 이름의 미들웨어를 대체합니다.
prependbooleanfalse기존 미들웨어 앞에 미들웨어를 추가합니다.