CSR nima va Nuxt'da uni qachon tanlash kerak?
MiddleNuxt.js #nuxt #csr #spa
Savol
Nuxt kontekstida CSR (Client-Side Rendering) nima va uni SSR o'rniga qachon ishlatish kerak?
Qisqa javob
CSR paytida brauzer deyarli bo'sh HTML va JS-bandlni oladi, u esa allaqachon klientda butun interfeysni quradi. Nuxt'da bu ssr: false orqali yoqiladi — ilova klassik SPA'ga aylanadi.
Batafsil javob
Nuxt renderlash strategiyasini moslashuvchan tanlash imkonini beradi:
- Global darajada —
nuxt.config.tsdagissr: falsebutun loyihani SPA'ga aylantiradi (masalan, SEO muhim bo'lmagan, avtorizatsiya ortidagi admin-panel uchun). - Aniq nuqtada —
<ClientOnly>komponenti kontentni faqat klientda renderlaydi (windowga bog'liq uchinchi tomon kutubxonalari, grafiklar, xaritalar uchun foydali). - Marshrutlar bo'yicha (Nuxt 3.9+) —
nuxt.config.tsdagirouteRulesfaqat aniq sahifalar uchunssr: falsebelgilash imkonini beradi, qolganlari uchun SSR saqlanib qoladi.
CSR SSR'dan afzalroq bo'lgan holatlar:
- SEO talablarisiz ichki vositalar/dashboardlar.
- Birinchi kontentgacha bo'lgan vaqtdan ko'ra, birinchi yuklanishdan keyingi tajriba (SPA'dagidek) muhimroq bo'lgan ilovalar.
- Renderlashni klientga ko'chirish orqali serverga yuklamani kamaytirish.
Misol
// nuxt.config.ts
export default defineNuxtConfig({
routeRules: {
'/admin/**': { ssr: false } // admin-panel faqat klientda renderlanadi
}
})
<ClientOnly>
<HeavyChartLibrary :data="chartData" />
<template #fallback>
<USkeleton class="h-64 w-full" />
</template>
</ClientOnly>
Qo'shimcha savollar
- SPA-rejimning SSR bilan solishtirganda qanday afzallik va kamchiliklari bor?
routeRulesbitta loyihada SSR/CSR/ISR'ni birlashtirishga qanday yordam beradi?- Nima uchun
<ClientOnly>hydration mismatch'ning oldini olish uchun foydali?