透過 100+ 個技巧學習 Nuxt!

插件和中介層

了解如何從 Nuxt 2 遷移到 Nuxt 3 的插件和中介層。

插件

現在插件有不同的格式,並且只接受一個參數 (nuxtApp)。

export default (ctx, inject) => {
  inject('injected', () => 'my injected function')
})
文件 > 指南 > 目錄結構 > 插件 中閱讀更多。
閱讀更多關於 nuxtApp 格式的資訊。

遷移

  1. 遷移您的插件以使用 defineNuxtPlugin 輔助函數。
  2. 移除在您的 nuxt.config 插件陣列中,位於 plugins/ 資料夾內的任何條目。在此目錄頂層的所有檔案 (以及任何子目錄中的任何 index 檔案) 都將自動註冊。您可以直接在檔名中指示,而無需設定 modeclientserver。例如,~/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