插件和中介層
了解如何從 Nuxt 2 遷移到 Nuxt 3 的插件和中介層。
插件
現在插件有不同的格式,並且只接受一個參數 (nuxtApp
)。
export default (ctx, inject) => {
inject('injected', () => 'my injected function')
})
遷移
- 遷移您的插件以使用
defineNuxtPlugin
輔助函數。 - 移除在您的
nuxt.config
插件陣列中,位於plugins/
資料夾內的任何條目。在此目錄頂層的所有檔案 (以及任何子目錄中的任何 index 檔案) 都將自動註冊。您可以直接在檔名中指示,而無需設定mode
為client
或server
。例如,~/plugins/my-plugin.client.ts
將只在客戶端載入。
路由中介層
路由中介層有不同的格式。
export default function ({ store, redirect }) {
// If the user is not authenticated
if (!store.state.authenticated) {
return redirect('/login')
}
}
就像 Nuxt 2 一樣,放置在您的 ~/middleware
資料夾中的路由中介層會自動註冊。然後您可以在組件中按名稱指定它。然而,這是使用 definePageMeta
而不是作為組件選項來完成的。
navigateTo
是許多路由輔助函數之一。
遷移
- 遷移您的路由中介層以使用
defineNuxtRouteMiddleware
輔助函數。 - 任何全域中介層 (例如在您的
nuxt.config
中) 都可以放置在您的~/middleware
資料夾中,並帶有.global
擴展名,例如~/middleware/auth.global.ts
。