Nuxt.js 中间件与插件
在开发 Nuxt 应用时,你可能会希望在页面渲染前执行一些逻辑,比如权限校验、跳转控制,或者在应用启动时注入一些全局功能。这时候就可以用到 Nuxt 的中间件(Middleware)和插件(Plugins)。本文将带你理解它们的用途,并教你如何在项目中正确使用它们。
在这篇文章中,你将学习:
- 中间件(Middleware)的基本概念和使用方法
- 插件(Plugins)的创建与注入机制
- 它们在实际项目中的常见使用场景
中间件(Middleware)
中间件是在页面组件渲染之前运行的一段逻辑,常用于访问控制、重定向、日志等场景。
使用方式一:定义全局中间件
你可以在 middleware/ 目录下创建一个中间件文件,例如 auth.ts:
middleware/auth.ts
export default defineNuxtRouteMiddleware((to, from) => {
const user = useUserStore()
if (!user.isLoggedIn && to.path !== '/login') {
return navigateTo('/login')
}
})
中间件函数可以访问当前路由信息和上下文。你可以返回一个重定向,或者不返回任何内容。
要让它全局生效,需要在页面组件中使用:
<script setup>
definePageMeta({
middleware: 'auth'
})
</script>
你还 可以同时使用多个中间件:
definePageMeta({
middleware: ['auth', 'log']
})