透過 100 多個提示學習 Nuxt!

外掛和中介層

了解如何將 Nuxt 2 的外掛和中介層遷移至 Nuxt 3。

外掛

外掛現在有不同的格式,且僅接受一個參數 (nuxtApp)。

export default (ctx, inject) => {
  inject('injected', () => 'my injected function')
})
請參閱 文件 > 指南 > 目錄結構 > 外掛 以了解更多資訊。
請參閱有關 nuxtApp 格式的更多資訊。

遷移

  1. 遷移您的外掛以使用 defineNuxtPlugin 輔助函式。
  2. 移除 nuxt.config 外掛陣列中位於 plugins/ 資料夾中的任何項目。在此目錄頂層的所有檔案(以及任何子目錄中的任何索引檔案)都會自動註冊。您可以透過檔案名稱來指定是 clientserver,而無需將 mode 設定為 clientserver。例如,~/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 是許多路由輔助函式之一。

請參閱 文件 > 指南 > 目錄結構 > 中介層 以了解更多資訊。

遷移

  1. 遷移您的路由中介層以使用 defineNuxtRouteMiddleware 輔助函式。
  2. 任何全域中介層(例如在您的 nuxt.config 中)都可以放置在您的 ~/middleware 資料夾中,並具有 .global 擴充功能,例如 ~/middleware/auth.global.ts