Middleware
Middleware in Nuxt 3 allows you to execute custom logic before rendering a page or API route. Middleware functions run before a page or layout is loaded, making them useful for authentication, redirects, logging, or other pre-processing tasks.
Creating Middleware
To create a middleware, add a new file in the middleware directory of your Nuxt 3 project. For example, to create an authentication middleware:
// middleware/auth.js
import { useUserDetailsStore } from "@/store/userDetailsStore";
import { storeToRefs } from "pinia";
export default defineNuxtRouteMiddleware(() => {
const { user } = storeToRefs(useUserDetailsStore());
const localUser = JSON.parse(localStorage.getItem('user') || '{}');
user.value = localUser;
if (!( user.value )) return navigateTo('/login');
});
to use the different types of Middleware
Global Middleware - Applied to all pages and layouts.
// nuxt.config.ts
export default defineNuxtConfig({
router: {
middleware: ['auth']
}
});
Route Middleware - Applied to specific pages or layouts.
// layouts/default.vue or pages/index.vue
<script setup>
definePageMeta({
middleware: 'auth'
});
</script>
Conclusion
Nuxt 3 middleware provides a powerful way to handle tasks before rendering pages. By understanding how to create and apply middleware, you can enhance the functionality and security of your Nuxt 3 applications.
For more information, refer to the Nuxt 3 documentation.