Nuxt'da middleware qanday ishlaydi?
MiddleNuxt.js #nuxt #middleware #routing
Savol
Nuxt'da route middleware nima va ular qanday turlarga bo'linadi?
Qisqa javob
Route middleware — sahifaga o'tishdan oldin bajariladigan funksiyalar. Avtorizatsiyani tekshirish, redirektlar, renderlashdan oldin zaruriy ma'lumotlarni yuklash uchun ishlatiladi.
Batafsil javob
Middleware'ni e'lon qilishning uchta usuli:
- Nomlangan —
middleware/auth.tsfayli,definePageMeta({ middleware: 'auth' })orqali ulanadi. - Global —
.global.tsqo'shimchali fayl (middleware/analytics.global.ts), har bir navigatsiyada avtomatik bajariladi. - Inline — aniq sahifada
definePageMeta({ middleware: [...] })ichida to'g'ridan-to'g'ri funksiya.
Middleware'ning signaturasi — (to, from) => { ... }. Ichida quyidagilarni bajarish mumkin:
- redirekt uchun
return navigateTo('/login')chaqirish; - o'tishni bekor qilish uchun
abortNavigation('Xabar')qaytarish; - hech narsa qaytarmaslik — navigatsiya odatdagidek davom etadi.
Middleware'lar sahifa renderlanishidan oldin, quyidagi tartibda bajariladi: global → sahifada ko'rsatilgan nomlangan middleware'lar.
Misol
// middleware/auth.ts
export default defineNuxtRouteMiddleware((to) => {
const isAuthenticated = useState('authenticated')
if (!isAuthenticated.value && to.path !== '/login') {
return navigateTo('/login')
}
})
<script setup>
definePageMeta({
middleware: 'auth'
})
</script>
Qo'shimcha savollar
- Route middleware server middleware'dan (
server/middleware/) nimasi bilan farq qiladi? - Sahifaning birinchi yuklanishida middleware serverda bajariladimi?
- Middleware'dan sahifaning o'ziga ma'lumotni qanday uzatish mumkin?