- Vẫn yêu thích React và cũng đánh giá cao những gì Vercel cung cấp, nhưng đã chuyển sang TanStack vì vấn đề độ phức tạp ngày càng tăng và chi phí của Next.js
- TanStack tuy vẫn còn thiếu sót, nhưng trực quan và có thể dễ dàng thêm các tính năng nâng cao khi cần
- Cho đến khi thực sự cần các tính năng nâng cao của Next.js, TanStack là lựa chọn tốt nhất
Điểm mạnh của Next.js
- Thiết lập nhanh và hỗ trợ nhiều tích hợp
- Next.js là "React Framework for the Web", cho phép thiết lập ứng dụng React nhanh chóng
- Có nhiều hướng dẫn tích hợp khác nhau: MUI, MarkdocDataDog, v.v.
- Cung cấp plugin native cho các công cụ như Jest
- Phù hợp với các ứng dụng quy mô lớn, hiệu năng cao
- Có thể tinh chỉnh chi tiết mẫu render của từng trang
- Cung cấp nhiều API cho hiệu năng cao
- Server-side rendering (SSR)
- Partial prerendering (PPR)
- Edge Functions, streaming và selective hydration
- Hỗ trợ incremental static regeneration (ISR), giúp xử lý hiệu quả nội dung có lưu lượng truy cập cao
Giới hạn và vấn đề của Next.js
- Độ phức tạp của các tính năng nâng cao không cần thiết
- Các tính năng nâng cao tạo cảm giác quá mức đối với ứng dụng quy mô nhỏ
- Có nhiều tính năng tối ưu vi hiệu năng không cần thiết cho startup giai đoạn đầu
- Vấn đề chi phí tài chính
- Nhiều tính năng của Next.js bị gắn chặt với dịch vụ thương mại
- Edge computing (
middleware.ts)
- Chuyển đổi hình ảnh (
next/image)
- ISR (
export const revalidate = 60)
- Thực thi hàm serverless (
app/api/route.ts)
- Mức độ phụ thuộc cao vào dịch vụ Vercel làm tăng rủi ro chi phí
- Đường cong học tập phức tạp và bề mặt API rộng*
- Độ phức tạp của App Router khiến đường cong học tập cao
- Phần giải thích khái niệm trong tài liệu khá khó hiểu
- Khó debug
- Tồn tại ba hệ thống cache như full route cache, data cache và router cache
- Hỗ trợ SPA (single-page application) còn hạn chế
- Hỗ trợ SPA của Next.js bị giới hạn và khó cải thiện hiệu năng
- Hiệu năng dev server thua kém so với Vite
- Hiệu năng của TurboPack cũng chưa đáp ứng kỳ vọng
Ưu điểm của TanStack + Vite
- Cấu trúc đơn giản và trực quan
- TanStack Router cung cấp tự động hoàn thành và xác thực search params thông qua Zod
- Luồng code rõ ràng và dễ dự đoán
- Quản lý trạng thái với TanStack Query
- Dễ dàng quản lý và debug server state
- Có sẵn developer tools tích hợp
- Hiệu năng nhanh của Vite
- Tốc độ build và thực thi code nhanh
- Hoạt động ngay mà không cần cấu hình phức tạp
- Không bị phụ thuộc vào một dịch vụ cloud cụ thể
1 bình luận
Tôi nghĩ nếu cứ tiếp tục xây dựng thì cuối cùng nó cũng sẽ trở thành giống như Next.js.