Về danh sách bài viết
React 19: Server Components, hooks mới và cách tối ưu app web
React 19Server Components

React 19: Server Components, hooks mới và cách tối ưu app web

React 19 mang gì mới? Server Components ổn định, Actions, useActionState, useOptimistic và React Compiler - phân tích thực tế để bạn quyết định có nên nâng cấp.

sang01/09/202615 lượt xem2 phút đọc

React 19 là bản phát hành thay đổi nhiều thứ trong cách chúng ta viết ứng dụng web. Bài này đi qua những gì thực sự đáng quan tâm, kèm nhận xét về việc có nên nâng cấp ngay hay không.

Chương 1: Server Components đã ổn định

Server Components chạy trên máy chủ và không gửi mã JavaScript của chúng xuống trình duyệt. Điều này đổi cách chia nhỏ ứng dụng: phần lấy dữ liệu nằm ở máy chủ, phần tương tác mới cần đến client.

Lợi ích thấy rõ nhất:

  • Gói JavaScript nhỏ đi đáng kể vì thư viện chỉ dùng ở máy chủ không bị đóng gói
  • Lấy dữ liệu ngay trong component, không cần useEffect rồi setState
  • Nội dung có sẵn trong HTML nên máy tìm kiếm đọc được

Mục 1.1 Khi nào vẫn phải dùng Client Component

Bất cứ khi nào cần trạng thái, hiệu ứng, hoặc trình xử lý sự kiện. Quy tắc thực dụng: để Server Component làm mặc định, chỉ đánh dấu "use client" ở lá cây gần chỗ tương tác nhất.

Chương 2: Actions và các hook đi kèm

Actions cho phép truyền thẳng một hàm bất đồng bộ vào thuộc tính action của thẻ form. React tự lo trạng thái đang gửi và lỗi.

Mục 2.1 useActionState

Gộp ba thứ vốn phải tự quản lý: dữ liệu trả về, trạng thái đang chạy, và hàm để gọi. Nhờ vậy form không còn ba biến useState rời rạc.

Mục 2.2 useOptimistic

Cập nhật giao diện trước khi máy chủ trả lời, rồi tự hoàn lại nếu thất bại. Hợp với nút thích, đánh dấu đã đọc - những thao tác gần như luôn thành công.

Chương 3: React Compiler

Trình biên dịch tự chèn ghi nhớ, nên phần lớn trường hợp không cần useMemo và useCallback nữa. Đổi lại nó khắt khe hơn với mã không thuần khiết, và sẽ báo lỗi ở những chỗ trước đây vẫn chạy.

Chương 4: Có nên nâng cấp ngay không

Nên nâng nếu dự án mới, hoặc đang gặp vấn đề kích thước gói. Nên chờ nếu đang phụ thuộc nhiều thư viện bên thứ ba chưa hỗ trợ, vì lỗi loại này rất khó lần ra.

React 19: Server Components, hooks mới và cách tối ưu app web