Đăng nhập

BÀI 7: STATIC SITE vs SSR vs HYBRID TRONG NUXTJS

Cùng đến với Bài 7 – Static Site, SSR và Hybrid Mode trong NuxtJS. Đây là một trong những điểm mạnh lớn nhất của Nuxt: nhiều chế độ rendering linh hoạt, giúp bạn build đúng loại ứng dụng cần thiết cho từng mục đích.


1. Nuxt hỗ trợ 3 chế độ chính

Chế độViết tắtMô tả ngắn
SPASingle Page AppToàn bộ chạy trên trình duyệt, không SSR
SSRServer-side RenderingRender HTML từ server mỗi lần truy cập
SSGStatic Site GenerationBuild ra HTML tĩnh lúc deploy
HybridKết hợpMột số trang SSG, một số trang SSR/SP

2. SPA – Single Page Application

  • Mọi thứ chạy trên trình duyệt
  • Giống như Vue CLI app bình thường
  • Không hỗ trợ SEO vì không có HTML sẵn
  • Nhanh cho app nội bộ, dashboard

Dùng khi:

  • Không cần SEO
  • Ứng dụng nhiều tương tác nội bộ (CRM, quản lý, SPA)

3. SSR – Server-side Rendering

  • HTML được render từ server mỗi lần truy cập
  • Tốt cho SEO vì bot đọc được nội dung ngay
  • Có thể chậm nếu server yếu

Ví dụ flow:

  1. User truy cập → Server tạo HTML
  2. HTML gửi về → trình duyệt hiển thị nhanh

Dùng khi:

  • Website tin tức, blog
  • SEO là ưu tiên hàng đầu
  • Dữ liệu động theo user (người dùng khác nhau, nội dung khác nhau)

4. SSG – Static Site Generation

  • Build ra HTML tĩnh trước khi deploy
  • Rất nhanh, không cần server render
  • Không phù hợp với nội dung thường xuyên thay đổi

Ví dụ:
Khi build project: Nuxt sẽ tạo HTML cho mỗi trang .vue, sau đó chỉ cần upload lên Netlify là chạy.

Dùng khi:

  • Blog tĩnh, Documentation, Landing Page
  • Nội dung ít thay đổi

5. Hybrid Mode – kết hợp nhiều kiểu

  • Nuxt cho phép mỗi trang có chế độ khác nhau
  • Một số page dùng useFetch() (SSR), một số fetch-on-client (SPA)

Ví dụ:

definePageMeta({
  prerender: true // trang này sẽ được build ra HTML tĩnh
})

Hoặc dùng:

defineNuxtConfig({
  ssr: true
})

Nhưng trang /admin có thể tắt SSR riêng.


6. Cấu hình chế độ trong nuxt.config.ts

SSG (static site):

export default defineNuxtConfig({
  ssr: true,
  target: 'static'
})

SSR:

export default defineNuxtConfig({
  ssr: true
})

SPA:

export default defineNuxtConfig({
  ssr: false
})

7. So sánh tổng quát

Tiêu chíSPASSRSSG
SEO tốt
Tốc độ tảiCó (sau lần đầu)Phụ thuộc serverCó (HTML sẵn)
Thích hợp app nội bộKhôngKhông
Cần hosting độngKhôngKhông
Dễ deployKhó hơn

Bạn đã học được

  • Các chế độ render mà Nuxt hỗ trợ
  • Khi nào nên dùng SSR / SSG / SPA
  • Cách config chế độ phù hợp trong nuxt.config.ts
  • Lợi thế của Hybrid Mode – kết hợp linh hoạt

Thảo luận

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *

Đăng ký nhận tin mới

Nhận bài học, tài nguyên và cơ hội việc làm qua email hàng tuần.

Chúng tôi cam kết không spam. Bạn có thể hủy bất cứ lúc nào.