Home Arrow Icon Knowledge base Arrow Icon Global Arrow Icon Jak React 19 podporuje vlastní prvky odlišně od předchozích verzí


Jak React 19 podporuje vlastní prvky odlišně od předchozích verzí


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/