React 19 představuje významná vylepšení pro podporu vlastních prvků ve srovnání s předchozími verzemi, které se zaměřují především na to, jak jsou rekvizity během vykreslování spravovány. Zde jsou klíčové rozdíly:
Vylepšená manipulace s prop
1. Oddělení atributů a vlastností: V React 19 jsou rekvizity, které odpovídají vlastnostem v instanci vlastního prvku, přiřazeny jako vlastnosti během vykreslování na straně klienta. Pokud je podpěra primitivního typu (jako `string`,` number` nebo `true`), je vykreslena jako atribut. Nepprimitivní typy (jako `Object`,` Symbol` nebo `Function`) jsou z vykreslování vyloučeny. Tento přístup umožňuje intuitivnější interakci s vlastními prvky, což je v souladu s tím, jak jsou obvykle navrženy tak, aby fungovaly [3] [4].
2. Vylepšení na straně serveru (SSR): Během SSR platí stejná logika: Primitivní rekvizity jsou vykresleny jako atributy, zatímco neprimitivní typy jsou vynechány. Tím je zajištěno, že výstup vykreslený server je v souladu s tím, co klient očekává, a snižuje potenciální nesoulad během hydratace [4] [5].
3. SCOPED COUSTRAY Element Registries: React 19 podporuje registry vlastních prvků SCOPED, což vývojářům umožňuje efektivněji spravovat vlastní prvky v architekturách mikro-frontendu. Tato funkce pomáhá předcházet konfliktům verze, když více aplikací závisí na různých verzích stejného vlastního prvku, zvyšuje modularitu a kompatibilitu [2].
4. Vylepšené metriky výkonu: React 19 dosáhla 100% skóre na vlastních prvcích všude, což je významné zlepšení oproti předchozích verzích. To ukazuje na lepší výkon a kompatibilitu s webovými komponenty, které se zabývají minulými kritikami týkajícími se zacházení s vlastními prvky React [5].
Tato vylepšení v React 19 nejen zefektivňují integraci vlastních prvků do aplikací React, ale také zlepšují celkový výkon a zkušenosti s vývojářem, což usnadňuje práci s webovými komponenty v kontextu React.
Citace:[1] https://github.com/facebook/react/issues/11347
[2] https://github.com/facebook/react/issues/28938
[3] https://www.angularminds.com/blog/react-19-beta-features
[4] https://react.dev/blog/2024/04/25/react-19
[5] https://piccalil.li/blog/upcoming-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-opdates/