Plugins And Middleware
插件
现在插件的格式有所不同,只需要一个参数(nuxtApp
)。
export default (ctx, inject) => {
inject('injected', () => 'my injected function')
})
迁移
- 将你的插件迁移到使用
defineNuxtPlugin
辅助函数。 - 移除
nuxt.config
插件数组中位于plugins/
文件夹中的任何条目。该目录中的所有文件(以及任何子目录中的索引文件)将自动注册。你可以在文件名中指示它在客户端还是服务器端运行,而不需要设置mode
。例如,~/plugins/my-plugin.client.ts
只会在客户端加载。
路由中间件
路由中间件的格式有所不同。
export default function ({ store, redirect }) {
// 如果用户未经过身份验证
if (!store.state.authenticated) {
return redirect('/login')
}
}
与 Nuxt 2 类似,位于 ~/middleware
文件夹中的路由中间件将自动注册。然后,你可以在组件中通过名称指定它。但是,这是通过 definePageMeta
而不是组件选项来完成的。
navigateTo
是一系列路由辅助函数之一。
迁移
- 将你的路由中间件迁移到使用
defineNuxtRouteMiddleware
辅助函数。 - 任何全局中间件(例如在
nuxt.config
中的中间件)都可以放置在~/middleware
文件夹中,并使用.global
扩展名,例如~/middleware/auth.global.ts
。