React 19 predstavuje významné vylepšenia na podporu vlastných prvkov v porovnaní s predchádzajúcimi verziami, primárne sa zameriava na to, ako sú rekvizity spravované počas vykresľovania. Tu sú kľúčové rozdiely:
Vylepšené manipulácie s rekvizitou
1. Oddelenie atribútov a vlastností: V React 19 sú rekvizity, ktoré zodpovedajú vlastnostiam vo vlastnej inštancii prvku, priradené ako vlastnosti počas vykresľovania na strane klienta. Ak je rekvizita primitívny typ (napríklad `String`,` number` alebo `true`), vykresľuje sa ako atribút. Neprimitívne typy (napríklad `Object`,` Symbol` alebo `Function`) sú vylúčené z vykresľovania. Tento prístup umožňuje intuitívnejšiu interakciu s vlastnými prvkami, ktoré sú v súlade s tým, ako sú zvyčajne navrhnuté tak, aby fungovali [3] [4].
2. Vylepšenia vykresľovania na strane servera (SSR): Počas SSR sa uplatňuje rovnaká logika: Primitívne rekvizity sa vykresľujú ako atribúty, zatiaľ čo nemitívne typy sú vynechané. To zaisťuje, že výstup vynútený serverom je v súlade s tým, čo klient očakáva, čím sa znižuje potenciálne nesúlady počas hydratácie [4] [5].
3. Rozsahované registre vlastných prvkov: React 19 podporuje rozsahové registre vlastných prvkov, čo vývojárom umožňuje efektívnejšie spravovať vlastné prvky v architektúrach mikropodnikov. Táto funkcia pomáha predchádzať konfliktom verzie, keď viacero aplikácií závisí od rôznych verzií toho istého vlastného prvku, čím sa zlepšuje modularita a kompatibilita [2].
4. Vylepšené metriky výkonnosti: React 19 dosiahla 100% skóre na vlastných prvkoch všade, čo je porovnávacia hodnota, čo je významné zlepšenie oproti predchádzajúcim verziám. To naznačuje lepší výkon a kompatibilitu s webovými komponentmi, ktoré sa zaoberajú minulými kritikami týkajúcimi sa riešenia vlastných prvkov spoločnosti React [5].
Tieto vylepšenia v reakcii 19 nielen zefektívňujú integráciu vlastných prvkov do aplikácií React, ale tiež zlepšujú celkový výkon a skúsenosti s vývojármi, čo uľahčuje prácu s webovými komponentmi v kontexte React.
Citácie:[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://elumstechnologies.com/blog/react-19/
[8] https://www.geeksforgeeks.org/react-19-new-features-andpdates/