外掛和中介層
了解如何將 Nuxt 2 的外掛和中介層遷移至 Nuxt 3。
外掛
外掛現在有不同的格式,且僅接受一個參數 (nuxtApp
)。
export default (ctx, inject) => {
inject('injected', () => 'my injected function')
})
遷移
- 遷移您的外掛以使用
defineNuxtPlugin
輔助函式。 - 移除
nuxt.config
外掛陣列中位於plugins/
資料夾中的任何項目。在此目錄頂層的所有檔案(以及任何子目錄中的任何索引檔案)都會自動註冊。您可以透過檔案名稱來指定是client
或server
,而無需將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
。