라이프사이클 훅

Nuxt는 거의 모든 측면을 확장할 수 있는 강력한 훅킹 시스템을 제공합니다.
Read more in Docs > Guide > Going Further > Hooks.

앱 훅 (런타임)

사용 가능한 모든 훅은 앱 소스 코드에서 확인할 수 있습니다.

HookArguments환경설명
app:createdvueApp서버 & 클라이언트초기 vueApp 인스턴스가 생성될 때 호출됩니다.
app:errorerr서버 & 클라이언트치명적인 오류가 발생할 때 호출됩니다.
app:error:cleared{ redirect? }서버 & 클라이언트치명적인 오류가 발생할 때 호출됩니다.
vue:setup-서버 & 클라이언트Nuxt 루트의 setup이 초기화될 때 호출됩니다. 이 콜백은 동기적으로 실행되어야 합니다.
vue:errorerr, target, info서버 & 클라이언트vue 오류가 루트 컴포넌트로 전파될 때 호출됩니다. 자세히 알아보기.
app:renderedrenderContext서버SSR 렌더링이 완료되면 호출됩니다.
app:redirected-서버SSR 리디렉션 전에 호출됩니다.
app:beforeMountvueApp클라이언트앱이 마운트되기 전에 호출되며, 클라이언트 사이드에서만 호출됩니다.
app:mountedvueApp클라이언트Vue 앱이 브라우저에서 초기화되고 마운트될 때 호출됩니다.
app:suspense:resolveappComponent클라이언트Suspense가 resolve될 때 이벤트가 발생합니다.
app:manifest:update{ id, timestamp }클라이언트앱의 새로운 버전이 감지되었을 때 호출됩니다.
app:data:refreshkeys?클라이언트refreshNuxtData가 호출될 때 호출됩니다.
link:prefetchto클라이언트<NuxtLink>가 prefetch될 때 관찰되어 호출됩니다.
page:startpageComponent?클라이언트NuxtPageSuspense pending 이벤트에서 호출됩니다.
page:finishpageComponent?클라이언트NuxtPageSuspense resolved 이벤트에서 호출됩니다.
page:loading:start-클라이언트새 페이지의 setup()이 실행될 때 호출됩니다.
page:loading:end-클라이언트page:finish 이후에 호출됩니다.
page:transition:finishpageComponent?클라이언트페이지 전환 onAfterLeave 이벤트 이후에 호출됩니다.
dev:ssr-logslogs클라이언트서버 사이드 로그 배열이 클라이언트로 전달될 때 호출됩니다 (features.devLogs가 활성화된 경우).
page:view-transition:starttransition클라이언트실험적 viewTransition 지원이 활성화된 경우 document.startViewTransition이 호출된 후 호출됩니다.

Nuxt 훅 (빌드 타임)

사용 가능한 모든 훅은 스키마 소스 코드에서 확인할 수 있습니다.

HookArguments설명
kit:compatibilitycompatibility, issues호환성 검사를 확장할 수 있습니다.
readynuxtNuxt 초기화 후, Nuxt 인스턴스가 작업할 준비가 되었을 때 호출됩니다.
closenuxtNuxt 인스턴스가 정상적으로 종료될 때 호출됩니다.
restart{ hard?: boolean }현재 Nuxt 인스턴스를 재시작할 때 호출됩니다.
modules:before-Nuxt 초기화 중, 사용자 모듈 설치 전에 호출됩니다.
modules:done-Nuxt 초기화 중, 사용자 모듈 설치 후에 호출됩니다.
app:resolveappapp 인스턴스가 resolve된 후 호출됩니다.
app:templatesappNuxtApp 생성 중, 빌드 디렉토리에 새로운 파일을 커스터마이징, 수정 또는 추가할 수 있도록 호출됩니다 (가상 또는 .nuxt에 기록).
app:templatesGeneratedapp템플릿이 가상 파일 시스템 (vfs)으로 컴파일된 후 호출됩니다.
build:before-Nuxt 번들 빌더 실행 전 호출됩니다.
build:done-Nuxt 번들 빌더가 완료된 후 호출됩니다.
build:manifestmanifestVite 및 webpack에 의해 매니페스트 빌드 중 호출됩니다. Nitro가 최종 HTML에서 <script><link> 태그를 렌더링할 때 사용할 매니페스트를 커스터마이징할 수 있습니다.
builder:generateAppoptions앱을 생성하기 전에 호출됩니다.
builder:watchevent, path개발 중 빌드 타임에 워처가 프로젝트 내 파일 또는 디렉토리의 변경을 감지할 때 호출됩니다.
pages:extendpages파일 시스템에서 페이지 라우트를 스캔한 후 호출됩니다.
pages:resolvedpages페이지 라우트가 스캔된 메타데이터로 보강된 후 호출됩니다.
pages:routerOptions{ files: Array<{ path: string, optional?: boolean }> }router.options 파일을 resolve할 때 호출됩니다. 배열의 나중 항목이 이전 항목을 덮어씁니다.
server:devHandlerhandlerNitro 개발 서버에 dev 미들웨어가 등록될 때 호출됩니다.
imports:sourcespresets모듈이 소스를 확장할 수 있도록 setup 시 호출됩니다.
imports:extendimports모듈이 import를 확장할 수 있도록 setup 시 호출됩니다.
imports:contextcontextunimport 컨텍스트가 생성될 때 호출됩니다.
imports:dirsdirsimport 디렉토리를 확장할 수 있습니다.
components:dirsdirsapp:resolve 내에서 호출되어 자동 import 가능한 컴포넌트를 스캔할 디렉토리를 확장할 수 있습니다.
components:extendcomponents새로운 컴포넌트를 확장할 수 있습니다.
nitro:confignitroConfigNitro 초기화 전에 호출되어 Nitro의 설정을 커스터마이징할 수 있습니다.
nitro:initnitroNitro가 초기화된 후 호출되어 Nitro 훅을 등록하거나 Nitro와 직접 상호작용할 수 있습니다.
nitro:build:beforenitroNitro 인스턴스를 빌드하기 전에 호출됩니다.
nitro:build:public-assetsnitropublic asset 복사 후 호출됩니다. Nitro 서버 빌드 전에 public asset을 수정할 수 있습니다.
prerender:routesctx프리렌더링할 라우트를 확장할 수 있습니다.
build:errorerror빌드 타임에 오류가 발생할 때 호출됩니다.
prepare:typesoptions@nuxt/cli.nuxt/tsconfig.json.nuxt/nuxt.d.ts를 작성하기 전에 호출되어, nuxt.d.ts에 커스텀 참조 및 선언을 추가하거나 tsconfig.json의 옵션을 직접 수정할 수 있습니다.
listenlistenerServer, listener개발 서버가 로딩될 때 호출됩니다.
schema:extendschemas기본 스키마를 확장할 수 있습니다.
schema:resolvedschemaresolve된 스키마를 확장할 수 있습니다.
schema:beforeWriteschema주어진 스키마를 작성하기 전에 호출됩니다.
schema:written-스키마가 작성된 후 호출됩니다.
vite:extendviteBuildContextVite 기본 컨텍스트를 확장할 수 있습니다.
vite:extendConfigviteInlineConfig, envVite 기본 설정을 확장할 수 있습니다.
vite:configResolvedviteInlineConfig, envresolve된 Vite 설정을 읽을 수 있습니다.
vite:serverCreatedviteServer, envVite 서버가 생성될 때 호출됩니다.
vite:compiled-Vite 서버가 컴파일된 후 호출됩니다.
webpack:configwebpackConfigswebpack 컴파일러 설정 전에 호출됩니다.
webpack:configResolvedwebpackConfigsresolve된 webpack 설정을 읽을 수 있습니다.
webpack:compileoptions컴파일 직전에 호출됩니다.
webpack:compiledoptions리소스가 로드된 후 호출됩니다.
webpack:changeshortPathWebpackBar에서 change 시 호출됩니다.
webpack:error-WebpackBar에서 done 시 오류가 있으면 호출됩니다.
webpack:done-WebpackBar에서 allDone 시 호출됩니다.
webpack:progressstatesArrayWebpackBar에서 progress 시 호출됩니다.

Nitro 앱 훅 (런타임, 서버 사이드)

사용 가능한 모든 훅은 Nitro에서 확인할 수 있습니다.

HookArguments설명타입
dev:ssr-logs{ path, logs }서버요청 사이클 종료 시 서버 사이드 로그 배열과 함께 호출됩니다.
render:responseresponse, { event }응답을 보내기 전에 호출됩니다.response, event
render:htmlhtml, { event }HTML을 구성하기 전에 호출됩니다.html, event
render:islandislandResponse, { event, islandContext }island HTML을 구성하기 전에 호출됩니다.islandResponse, event, islandContext
close-Nitro가 종료될 때 호출됩니다.-
errorerror, { event? }오류가 발생할 때 호출됩니다.error, event
requestevent요청이 수신될 때 호출됩니다.event
beforeResponseevent, { body }응답을 보내기 전에 호출됩니다.event, unknown
afterResponseevent, { body }응답을 보낸 후 호출됩니다.event, unknown