Home Arrow Icon Knowledge base Arrow Icon Global Arrow Icon Jak reaguje 19, obsługuje niestandardowe elementy inaczej niż poprzednie wersje


Jak reaguje 19, obsługuje niestandardowe elementy inaczej niż poprzednie wersje


React 19 wprowadza znaczące ulepszenia wspierania niestandardowych elementów w porównaniu z poprzednimi wersjami, koncentrując się przede wszystkim na sposobu zarządzania rekwizytami podczas renderowania. Oto kluczowe różnice:

Ulepszone obchodzenie się z rekwizytami

1. Rozdzielenie atrybutów i właściwości: W React 19 rekwizyty odpowiadające właściwościom w instancji elementu niestandardowego są przypisywane jako właściwości podczas renderowania po stronie klienta. Jeśli rekwizyt jest prymitywnym typem (jak `String`,` numer 'lub `true`), jest renderowany jako atrybut. Typy niepryminitywne (takie jak „obiekt”, „symbol” lub „funkcja”) są wykluczone z renderowania. Takie podejście pozwala na bardziej intuicyjną interakcję z niestandardowymi elementami, dostosowując się do tego, jak są one zwykle zaprojektowane do funkcjonowania [3] [4].

2. Ulepszenia renderowania po stronie serwera (SSR): Podczas SSR obowiązuje ta sama logika: Prymitywne rekwizyty są renderowane jako atrybuty, podczas gdy typy niepryminitywne są pominięte. Zapewnia to, że wyjście renderowane przez serwer jest zgodne z tym, czego oczekuje klient, zmniejszając potencjalne niedopasowania podczas nawodnienia [4] [5].

3. Zakopiowane rejestry elementów niestandardowych: React 19 obsługuje rejestry niestandardowych elementów niestandardowych, umożliwiając programistom skuteczniejsze zarządzanie niestandardowymi elementami w architekturach mikro-frontend. Ta funkcja pomaga zapobiegać konfliktom wersji, gdy wiele aplikacji zależy od różnych wersji tego samego niestandardowego elementu, zwiększając modułowość i kompatybilność [2].

4. Ulepszone wskaźniki wydajności: React 19 osiągnął 100% wynik w zakresie elementów niestandardowych wszędzie, co stanowi znaczną poprawę w stosunku do poprzednich wersji. Wskazuje to na lepszą wydajność i kompatybilność z komponentami internetowymi, zajmując się wcześniejszą krytyką dotyczącą obsługi niestandardowych elementów [5].

Te ulepszenia w React 19 nie tylko usprawniają integrację niestandardowych elementów do aplikacji React, ale także poprawiają ogólną wydajność i wrażenia programistów, co ułatwia pracę z komponentami internetowymi w kontekście React.

Cytaty:
[1] https://github.com/facebook/react/issues/11347
[2] https://github.com/facebook/react/issues/28938
[3] https://www.angularmininds.com/blog/react-19-beta-features
[4] https://react.dev/blog/2024/04/25/react-19
[5] https://piccalil.li/blog/upcing-custom-element-support-in-react/
[6] https://www.bacancytechnology.com/blog/whats-new-in-react-19
[7] https://eluminoustechnologies.com/blog/react-19/
[8] https://www.geeksforgeeks.org/react-19-new-features-and-pdates/