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.