插件和中间件
了解如何从 Nuxt 2 迁移到 Nuxt 3 的插件和中间件。
插件
插件现在有了不同的格式,并且只接受一个参数 (nuxtApp)。
export default (ctx, inject) => {
  inject('injected', () => 'my injected function')
})
迁移
- 迁移你的插件以使用 defineNuxtPlugin辅助函数。
- 删除你的 nuxt.config插件数组中位于plugins/文件夹中的任何条目。此目录顶层的所有文件(以及任何子目录中的任何索引文件)都将自动注册。你可以文件名中指示客户端或服务器模式,而不是将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。