生命週期鉤子
Nuxt 提供了一個強大的鉤子系統,可以使用鉤子擴充套件幾乎所有方面。
應用鉤子 (執行時)
檢視應用原始碼以獲取所有可用的鉤子。
鉤子 | 引數 | 環境 | 描述 |
---|---|---|---|
app:created | vueApp | 伺服器 & 客戶端 | 當初始vueApp 例項建立時呼叫。 |
app:error | err | 伺服器 & 客戶端 | 發生致命錯誤時呼叫。 |
app:error:cleared | { redirect? } | 伺服器 & 客戶端 | 發生致命錯誤時呼叫。 |
vue:setup | - | 伺服器 & 客戶端 | 當 Nuxt 根設定初始化時呼叫。此回撥必須是同步的。 |
vue:error | err, target, info | 伺服器 & 客戶端 | 當 Vue 錯誤傳播到根元件時呼叫。瞭解更多. |
app:rendered | renderContext | 伺服器 | 當 SSR 渲染完成時呼叫。 |
app:redirected | - | 伺服器 | 在 SSR 重定向之前呼叫。 |
app:beforeMount | vueApp | 客戶端 | 在掛載應用之前呼叫,僅在客戶端呼叫。 |
app:mounted | vueApp | 客戶端 | 當 Vue 應用在瀏覽器中初始化並掛載時呼叫。 |
app:suspense:resolve | appComponent | 客戶端 | 在Suspense解析事件上。 |
app:manifest:update | { id, timestamp } | 客戶端 | 當檢測到您的應用有新版本時呼叫。 |
app:data:refresh | keys? | 客戶端 | 當呼叫refreshNuxtData 時呼叫。 |
link:prefetch | @BobbieGoede | 客戶端 | 當檢測到<NuxtLink> 被預取時呼叫。 |
page:start | pageComponent? | 客戶端 | 在SuspenseNuxtPage 待處理事件中呼叫。 |
page:finish | pageComponent? | 客戶端 | 在SuspenseNuxtPage 已解析事件中呼叫。 |
page:loading:start | - | 客戶端 | 當新頁面的setup() 正在執行時呼叫。 |
page:loading:end | - | 客戶端 | 在page:finish 之後呼叫。 |
page:transition:finish | pageComponent? | 客戶端 | 頁面過渡後onAfterLeave事件。 |
dev:ssr-logs | logs | 客戶端 | 當伺服器端日誌陣列傳遞給客戶端時呼叫(如果啟用了features.devLogs )。 |
page:view-transition:start | transition | 客戶端 | 當實驗性檢視轉換支援已啟用時,在呼叫document.startViewTransition 之後呼叫。 |
Nuxt 鉤子 (構建時)
檢視schema 原始碼以獲取所有可用的鉤子。
鉤子 | 引數 | 描述 |
---|---|---|
kit:compatibility | compatibility, issues | 允許擴充套件相容性檢查。 |
ready | nuxt | 在 Nuxt 初始化之後,當 Nuxt 例項準備好工作時呼叫。 |
close | nuxt | 當 Nuxt 例項正常關閉時呼叫。 |
restart | { hard?: boolean } | 用於重新啟動當前 Nuxt 例項。 |
modules:before | - | 在 Nuxt 初始化期間,安裝使用者模組之前呼叫。 |
modules:done | - | 在 Nuxt 初始化期間,安裝使用者模組之後呼叫。 |
app:resolve | app | 在解析app 例項後呼叫。 |
app:templates | app | 在NuxtApp 生成期間呼叫,以允許自定義、修改或向構建目錄新增新檔案(無論是虛擬的還是寫入.nuxt )。 |
app:templatesGenerated | app | 在模板編譯到虛擬檔案系統 (vfs) 後呼叫。 |
build:before | - | 在 Nuxt 捆綁構建器之前呼叫。 |
build:done | - | 在 Nuxt 捆綁構建器完成後呼叫。 |
build:manifest | manifest | 在 Vite 和 webpack 構建 manifest 期間呼叫。這允許自定義 Nitro 將用於在最終 HTML 中渲染<script> 和<link> 標籤的 manifest。 |
builder:generateApp | options | 在生成應用程式之前呼叫。 |
builder:watch | event, path | 在開發構建時,當觀察者發現專案中的檔案或目錄發生更改時呼叫。 |
pages:extend | pages | 在從檔案系統掃描頁面路由後呼叫。 |
pages:resolved | pages | 在頁面路由透過掃描元資料增強後呼叫。 |
pages:routerOptions | { files: Array<{ path: string, optional?: boolean }> } | 在解析router.options 檔案時呼叫。陣列中靠後的項會覆蓋靠前的項。 |
server:devHandler | handler | 當開發中間件在 Nitro 開發伺服器上註冊時呼叫。 |
imports:sources | presets | 在設定時呼叫,允許模組擴充套件源。 |
imports:extend | imports (匯入) | 在設定時呼叫,允許模組擴充套件匯入。 |
imports:context | context | 當unimport上下文建立時呼叫。 |
imports:dirs | dirs | 允許擴充套件匯入目錄。 |
components:dirs | dirs | 在app:resolve 中呼叫,允許擴充套件用於自動匯入元件的目錄。 |
components:extend | components | 允許擴充套件新元件。 |
nitro:config | nitroConfig | 在初始化 Nitro 之前呼叫,允許自定義 Nitro 的配置。 |
nitro:init | nitro | 在 Nitro 初始化後呼叫,允許註冊 Nitro 鉤子並直接與 Nitro 互動。 |
nitro:build:before | nitro | 在構建 Nitro 例項之前呼叫。 |
nitro:build:public-assets | nitro | 在複製公共資產後呼叫。允許在構建 Nitro 伺服器之前修改公共資產。 |
prerender:routes | ctx | 允許擴充套件要預渲染的路由。 |
build:error | error | 在構建時發生錯誤時呼叫。 |
prepare:types | options | 在@nuxt/cli 寫入 TypeScript 配置檔案(.nuxt/tsconfig.app.json 、.nuxt/tsconfig.server.json 等)和.nuxt/nuxt.d.ts 之前呼叫,允許在nuxt.d.ts 中新增自定義引用和宣告,或直接修改生成的配置中的選項。 |
listen | listenerServer, listener | 當開發伺服器載入時呼叫。 |
schema:extend | schemas | 允許擴充套件預設 schema。 |
schema:resolved | schema | 允許擴充套件已解析的 schema。 |
schema:beforeWrite | schema | 在寫入給定 schema 之前呼叫。 |
schema:written | - | 在 schema 寫入後呼叫。 |
vite:extend | viteBuildContext | 允許擴充套件 Vite 預設上下文。 |
vite:extendConfig | viteInlineConfig, env | 允許擴充套件 Vite 預設配置。已棄用。 我們建議新增一個帶有config 鉤子的 Vite 外掛。 |
vite:configResolved | viteInlineConfig, env | 允許讀取已解析的 Vite 配置。已棄用。 我們建議新增一個帶有configResolved 鉤子的 Vite 外掛。 |
vite:serverCreated | viteServer, env | 當 Vite 伺服器建立時呼叫。 |
vite:compiled | - | 在 Vite 伺服器編譯後呼叫。 |
webpack:config | webpackConfigs | 在配置 webpack 編譯器之前呼叫。 |
webpack:configResolved | webpackConfigs | 允許讀取已解析的 webpack 配置。 |
webpack:compile | options | 在編譯之前呼叫。 |
webpack:compiled | options | 在資源載入後呼叫。 |
webpack:change | shortPath | 在 WebpackBar 的change 事件上呼叫。 |
webpack:error | - | 如果在 WebpackBar 的done 事件上有錯誤時呼叫。 |
webpack:done | - | 在 WebpackBar 的allDone 事件上呼叫。 |
webpack:progress | statesArray | 在 WebpackBar 的progress 事件上呼叫。 |
Nitro 應用鉤子 (執行時, 伺服器端)
請參閱Nitro以獲取所有可用的鉤子。
鉤子 | 引數 | 描述 | 型別 |
---|---|---|---|
dev:ssr-logs | { path, logs } | 伺服器 | 在請求週期結束時呼叫,包含一個伺服器端日誌陣列。 |
render:response | response, { event } | 在傳送響應之前呼叫。 | response, event |
render:html | html, { event } | 在構建 HTML 之前呼叫。 | html, event |
render:island | islandResponse, { event, islandContext } | 在構建島嶼 HTML 之前呼叫。 | islandResponse, event, islandContext |
close | - | 當 Nitro 關閉時呼叫。 | - |
error | error, { event? } | 發生錯誤時呼叫。 | error, event |
request | event | 收到請求時呼叫。 | event |
beforeResponse | event, { body } | 在傳送響應之前呼叫。 | event, unknown |
afterResponse | event, { body } | 在傳送響應後呼叫。 | event, unknown |