11 điểm bởi ragingwind 2024-10-22 | 5 bình luận | Chia sẻ qua WhatsApp

Phiên bản chính thức Next.js 15 đã được phát hành đúng dịp hội nghị 2024. Dưới đây không bao gồm các thay đổi đã được giải thích trong Next.js 15 RC 2 trước đó. Nếu muốn biết các thay đổi đó, hãy đọc trước.

  • Ngữ nghĩa bộ nhớ đệm (Breaking): Các hành vi sau đây không còn mặc định thực hiện cache nữa. Lý do thay đổi là khi tương tác với Partial Prerendering(PPR) hoặc thư viện bên thứ ba có thể phát sinh vấn đề, nên cách cache mặc định đã được xem xét lại. Trước đây force-cache là giá trị mặc định, nhưng nay đã đổi thành no-store để mặc định không cache, từ đó cung cấp hiệu năng và dữ liệu dễ dự đoán hơn.

    • Các yêu cầu fetch giờ đây mặc định không được cache và no-store là giá trị mặc định. Khi cần, có thể thiết lập cache bằng tùy chọn force-cache.
    • GET Route Handlers cũng mặc định không được cache. Có thể sử dụng cache thông qua tùy chọn force-static.
    • Client Router Cache sẽ phản ánh dữ liệu mới nhất khi chuyển trang và mặc định không được cache. Nếu muốn quay lại hành vi trước đây, có thể thiết lập tùy chọn staleTimes.
  • Hỗ trợ React 19: Next.js 15 đã được cập nhật để phù hợp với React 19, đồng thời vẫn duy trì khả năng tương thích với React 18 trong Pages Router. App Router sử dụng React 19 RC, và phản ánh phản hồi từ cộng đồng để các dự án đang dùng React 18 cũng có thể nâng cấp lên React 19. Ngoài ra, React Compiler được giới thiệu để cho phép tối ưu hóa tự động và giảm nhu cầu memoization thủ công. Những thay đổi này nhằm chuẩn bị cho bản phát hành chính thức React 19 trong tương lai.

    • React Compiler (Thử nghiệm): React Compiler là một trình biên dịch thử nghiệm do đội React của Meta tạo ra, có khả năng hiểu ngữ nghĩa của JavaScript và các quy tắc của React để tự động tối ưu mã. Nhờ đó, lập trình viên bớt cần memoization thủ công thông qua các API như useMemouseCallback. Tính năng này được hỗ trợ trong Next.js 15 và hiện chỉ được cung cấp dưới dạng plugin Babel, nên thời gian build có thể chậm hơn.
    • Cải thiện lỗi Hydration: Next.js 15 tiếp tục phát triển cách xử lý lỗi hydration cùng với thông báo lỗi đã được cải thiện từ các phiên bản trước. Giờ đây khi xảy ra lỗi hydration, hệ thống sẽ hiển thị cả mã nguồn của lỗi và các gợi ý về cách khắc phục vấn đề. Điều này giúp lập trình viên dễ hiểu và sửa lỗi hơn.
  • Turbopack Dev: Turbopack hiện đã ổn định, và tốc độ nhanh của nó sẽ cải thiện trải nghiệm phát triển của bạn. Thời gian khởi động server cục bộ được cải thiện khoảng 76%, Fast Refresh 96%, và biên dịch route đầu tiên không có cache được cải thiện khoảng 45%.

  • API unstable_after (Thử nghiệm): unstable_after là API thử nghiệm được giới thiệu trong Next.js 15, cho phép xử lý các tác vụ phụ như logging hoặc analytics sau khi phản hồi cho người dùng. Vì serverless function sẽ dừng thực thi ngay khi phản hồi hoàn tất, nên để giải quyết điều này có thể dùng after() để trì hoãn và chạy công việc ngay cả sau khi phản hồi đã xong. Có thể đồng bộ trạng thái tải, dữ liệu thống kê, v.v. với các hệ thống bên ngoài.

5 bình luận

 
vipeen 2024-10-23

Với dự án mới thì tôi sẽ chọn vue3 hoặc sveltekit.

 
zillionstar 2024-10-22

React mà Next15 hỗ trợ là từ 19 trở lên... nhưng React 19 vẫn chưa bỏ nhãn RC.

 
kbumsik 2024-10-23

Đúng như người khác đã nói, hiện vẫn là rc vì có vấn đề liên quan đến thay đổi tính năng, nhưng nếu bỏ qua phần đó thì có thể xem là stable.

 
[Bình luận này đã bị ẩn.]
 
ragingwind 2024-10-22

Tweet Hỏi & Đáp của maintainer liên quan đến https://x.com/timneutkens/status/1848464958830612729