Home Arrow Icon Knowledge base Arrow Icon Global Arrow Icon Bạn có thể cung cấp các ví dụ về cách React 19 bỏ qua các thẻ không mong muốn trong quá trình hydrat hóa


Bạn có thể cung cấp các ví dụ về cách React 19 bỏ qua các thẻ không mong muốn trong quá trình hydrat hóa


Trong React 19, việc xử lý các thẻ bất ngờ trong quá trình hydrat hóa đã được cải thiện đáng kể, đặc biệt là cách nó tương tác với các tập lệnh của bên thứ ba và phần mở rộng trình duyệt. Dưới đây là các ví dụ cụ thể về cách React 19 bỏ qua các thẻ bất ngờ:

Bỏ qua thẻ không mong muốn

1. Các yếu tố đầu và cơ thể: Khi React gặp các thẻ bất ngờ trong các phần `` và `` của tài liệu trong quá trình hydrat hóa, nó bỏ qua các thẻ này một cách thông minh thay vì kích hoạt lỗi không khớp hydrat hóa. Điều này có nghĩa là nếu tập lệnh của bên thứ ba đã chèn các phần tử không khớp với HTML do máy chủ tạo, React sẽ không cố gắng điều chỉnh những khác biệt này, do đó tránh các lỗi và gián đoạn tiềm năng trong quá trình kết xuất ứng dụng [1] [2] [4].

2. Bảo quản các bảng kiểu: Nếu React cần hiển thị lại toàn bộ tài liệu do sự không phù hợp hydrat hóa không liên quan đến sửa đổi của bên thứ ba, nó sẽ để lại bất kỳ bảng kiểu nào được đưa vào bởi các tập lệnh đó. Điều này đảm bảo rằng tính toàn vẹn trực quan của ứng dụng vẫn còn nguyên ngay cả khi phát hiện sự khác biệt [2] [4].

3. Xử lý các sửa đổi của bên thứ ba: Trước đây, mọi sửa đổi được thực hiện bởi các tập lệnh của bên thứ ba đều có thể dẫn đến các lỗi hydrat hóa, vì React sẽ cố gắng điều hòa HTML do máy chủ chuyển đổi với HTML phía máy khách đã sửa đổi. Trong React 19, những sửa đổi này bị bỏ qua trong quá trình hydrat hóa, cho phép ứng dụng tiếp tục hoạt động trơn tru mà không bị ảnh hưởng bởi những thay đổi bên ngoài [1] [4].

Kịch bản ví dụ

Hãy xem xét một kịch bản trong đó tập lệnh của bên thứ ba thêm một thẻ `` hoặc sửa đổi thẻ `` hiện có trong ``. Trong các phiên bản trước, điều này có thể dẫn đến lỗi hydrat hóa nếu HTML được trình tạo máy chủ không khớp với phiên bản do máy khách kết xuất. Trong React 19, khi phát hiện sự khác biệt như vậy, React sẽ bỏ qua các thẻ bất ngờ này, cho phép quá trình hydrat hóa hoàn thành mà không có lỗi, do đó cải thiện trải nghiệm người dùng bằng cách giảm thiểu sự gián đoạn do tập lệnh bên ngoài [2] [4].

Những cải tiến trong React 19 không chỉ tăng cường độ mạnh của hydrat hóa mà còn cung cấp trải nghiệm phát triển mượt mà hơn bằng cách giảm tần suất và tác động của các lỗi hydrat hóa liên quan đến tương tác của bên thứ ba.

Trích dẫn:
[1] https://webdeveloper.beehiiv.com/p/react-19-beta-release-quick-guide
[2] https://www.epicweb.dev/tips/whats-coming-in-react-19-beta
[3] https://sentry.io/answers/hydration-error-nextjs/
[4] https://react.dev/blog/2024/04/25/react-19
[5] https://github.com/facebook/react/issues/26224
[6] https://github.com/cypress-io/cypress/issues/27204
[7] https://legacy.reactjs.org/docs/hooks-reference.html
[8] https://www.kellton.com/kellton-tech-blog/react-19-latest-features-and-updates