FormatBox
Bài viết
© 2026 FormatBox. Made in Ho Chi Minh City.formatbox.support@gmail.comv1.0.0 · 89351ec · Next.js
BlogTrang chủ
FormatBox/Blog/Partial Prerendering: Tương lai của SSR trên Next.js
Công nghệNext.jsSSRPartial PrerenderingReact

Partial Prerendering: Tương lai của SSR trên Next.js

Partial Prerendering kết hợp sức mạnh của SSR và SSG, giúp tối ưu tốc độ và SEO cho các trang React phức tạp trên Next.js.

AAdmin15/10/20269 phút đọc8 phần
Partial Prerendering: Tương lai của SSR trên Next.js
Nghe bài viết
0:00/0:00
Mục lục (8)
  1. 01 SSR truyền thống và những giới hạn
  2. 02 Incremental Static Regeneration (ISR) và SSG
  3. 03 Partial Prerendering: Khái niệm và nguyên tắc
  4. 04 Cách Next.js triển khai Partial Prerendering
  5. 05 Lợi ích thực tiễn của Partial Prerendering
  6. 06 Khi nào nên áp dụng Partial Prerendering? – Hướng dẫn nhanh
  7. 07 Ví dụ thực tế: Blog đa ngôn ngữ
  8. 08 Kết luận

Bạn đã bao giờ cảm thấy bối rối khi phải chọn giữa SSR (Server‑Side Rendering) nhanh chóng nhưng tốn tài nguyên và SSG (Static Site Generation) nhẹ nhưng không cập nhật kịp thời? Next.js vừa ra mắt một giải pháp trung gian mang tên Partial Prerendering, hứa hẹn sẽ thay đổi cách chúng ta tối ưu hiệu năng và SEO cho các ứng dụng React phức tạp.

SSR truyền thống và những giới hạn

Server‑Side Rendering đã là trụ cột cho SEO và thời gian tải đầu tiên (TTFB) nhanh. Tuy nhiên, khi mỗi yêu cầu đều phải chạy toàn bộ logic trên server, chi phí và độ trễ tăng cao, đặc biệt với các trang có lượng truy cập lớn.

“SSR tốt nhất khi nội dung luôn thay đổi, nhưng lại không phải là lựa chọn tối ưu cho các phần tĩnh ổn định.” – một chuyên gia Next.js.

Incremental Static Regeneration (ISR) và SSG

Next.js đã giới thiệu ISR để cập nhật nội dung tĩnh sau khi trang đã được xây dựng. Điều này giúp giảm tải server, nhưng ISR vẫn đòi hỏi toàn bộ trang phải được tái tạo, không linh hoạt cho những trang có một phần nội dung thay đổi liên tục.

Partial Prerendering: Khái niệm và nguyên tắc

Partial Prerendering (PR) cho phép prerender một phần của cây component, trong khi các phần còn lại vẫn được render trên server tại thời gian thực. Ý tưởng chính:

  • Xác định các khu vực tĩnh (ví dụ: header, footer, menu) và prerender chúng khi build.
  • Đánh dấu các khu vực động (ví dụ: dữ liệu người dùng, danh sách thời gian thực) để render trên server khi có request.

Partial Prerendering minh hoạ

Cách Next.js triển khai Partial Prerendering

Next.js 14+ cung cấp API mới export const runtime = 'edge' kết hợp với fetch có next: { revalidate: false } để bỏ qua ISR cho các phần nhất định. Một ví dụ ngắn gọn:

// pages/dashboard.tsx
export const runtime = 'edge'; // chạy trên Edge Runtime

export async function getServerSideProps(context) {
  // Phần dữ liệu người dùng luôn dynamic
  const user = await fetch(`https://api.example.com/user/${context.params.id}`, {
    next: { revalidate: false } // không cache
  }).then(res => res.json());

  // Phần menu tĩnh, sử dụng ISR
  const menu = await fetch('https://api.example.com/menu', {
    next: { revalidate: 3600 } // cache 1h
  }).then(res => res.json());

  return { props: { user, menu } };
}

Trong ví dụ trên, menu được prerender và cache, còn user luôn được fetch realtime.

Lợi ích thực tiễn của Partial Prerendering

  • Tốc độ tải nhanh: Phần tĩnh được phục vụ ngay từ CDN, giảm TTFB đáng kể.
  • SEO ổn định: Các thành phần quan trọng cho crawlers đã được prerender.
  • Tiết kiệm chi phí: Server chỉ xử lý phần dynamic, giảm tải tính toán.
  • Độ linh hoạt cao: Dễ dàng mở rộng cho các trang có mix content.

Lợi ích PR trên biểu đồ

Khi nào nên áp dụng Partial Prerendering? – Hướng dẫn nhanh

  1. Trang có phần tĩnh lớn (header, footer, navigation) nhưng các khu vực nội dung thay đổi thường xuyên.
  2. Ứng dụng SaaS với dashboard cá nhân hoá cho mỗi người dùng.
  3. Landing pages cần SEO mạnh nhưng có form hoặc chat widget dynamic.
  4. E‑commerce có catalog tĩnh nhưng giỏ hàng và đề xuất thời gian thực.

Nếu đáp ứng hai trong ba tiêu chí trên, Partial Prerendering là lựa chọn đáng cân nhắc.

Ví dụ thực tế: Blog đa ngôn ngữ

Giả sử chúng ta có một blog hỗ trợ đa ngôn ngữ, trong đó phần bài viết thay đổi ít, còn phần bình luận luôn dynamic.

// pages/blog/[slug].tsx
export const runtime = 'edge';

export async function getStaticProps({ params }) {
  const post = await fetch(`https://cms.example.com/posts/${params.slug}`, {
    next: { revalidate: 86400 } // cache 24h
  }).then(r => r.json());

  return { props: { post } };
}

export async function getServerSideProps({ params }) {
  const comments = await fetch(`https://api.example.com/comments/${params.slug}`, {
    next: { revalidate: false }
  }).then(r => r.json());

  return { props: { comments } };
}

Kết quả: Khi người dùng truy cập bài viết, tiêu đề, nội dung, hình ảnh được phục vụ ngay từ CDN, còn bình luận được tải ngay trên server, đảm bảo luôn cập nhật.

Kết luận

Partial Prerendering không chỉ là một tính năng mới, mà còn là cầu nối giữa SSR và SSG, giúp các nhà phát triển Next.js cân bằng giữa hiệu năng, chi phí, và SEO. Khi bạn có một trang với sự kết hợp giữa nội dung tĩnh và động, hãy cân nhắc triển khai PR để tận dụng tối đa lợi thế của cả hai thế giới.

Bước tiếp theo? Thử áp dụng PR trên một dự án hiện tại, đo lường thời gian tải và chi phí server, rồi so sánh với cách triển khai truyền thống. Khi kết quả thực tế chứng minh sự cải thiện, bạn sẽ hiểu tại sao Partial Prerendering đang nhanh chóng trở thành tương lai của SSR trên Next.js.

#Next.js#SSR#Partial Prerendering#React
· · ·

Cảm ơn bạn đã đọc đến đây

Nếu bài viết hữu ích, hãy chia sẻ hoặc khám phá thêm bài khác trong cùng chủ đề.

Chia sẻ
Xem tất cả bài viết
Context0%

Partial Prerendering: Tương lai của SSR trên Next.js

Mục lục
  1. SSR truyền thống và những giới hạn
  2. Incremental Static Regeneration (ISR) và SSG
  3. Partial Prerendering: Khái niệm và nguyên tắc
  4. Cách Next.js triển khai Partial Prerendering
  5. Lợi ích thực tiễn của Partial Prerendering
  6. Khi nào nên áp dụng Partial Prerendering? – Hướng dẫn nhanh
  7. Ví dụ thực tế: Blog đa ngôn ngữ
  8. Kết luận
/to jump
Tailwind CSS v4 và CSS Variables: Thay Đổi Lớn Nhất Bài trướcTailwind CSS v4 và CSS Variables: Thay Đổi Lớn NhấtBài tiếp theo Vì sao SSD năm 2026 vẫn chưa thể thay thế hoàn toàn HDD?Vì sao SSD năm 2026 vẫn chưa thể thay thế hoàn toàn HDD?
Khám phá thêm

Bài viết liên quan

Xem tất cả
Micro-LED 2026: Nâng cấp từ OLED hay chờ thêm?Công nghệ

Micro-LED 2026: Nâng cấp từ OLED hay chờ thêm?

24/10/2026·9 phút đọcAAdmin
Chiến lược mã nguồn mở cho startup Việt: Tiết kiệm và phát triểnCông nghệ

Chiến lược mã nguồn mở cho startup Việt: Tiết kiệm và phát triển

24/10/2026·4 phút đọcAAdmin
Pin 20000mAh mini: Mật độ năng lượng và rủi ro hàng khôngCông nghệ

Pin 20000mAh mini: Mật độ năng lượng và rủi ro hàng không

24/10/2026·9 phút đọcAAdmin