Nová funkcia v React 19, ktorá umožňuje odovzdávanie odkazov ako rekvizity namiesto použitia „ForwardRef“, môže zlepšiť efektívnosť vývoja niekoľkými kľúčovými spôsobmi:
jednoduchšie a intuitívnejšie API
Odovzdávanie Refs ako bežných rekvizít je prirodzenejšie a intuitívnejšie API v porovnaní s používaním „ForwardRef“. Lepšie sa vyrovnáva s princípom základnej reakcie odovzdávania údajov do stromu komponentov cez rekvizity. To uľahčuje pochopenie kódu a dôvod, najmä pre začiatočníkov.
znížená kotol
Použitie `ForwardRef` vyžaduje zabalenie detskej komponentu do hovoru„ ForwardRef` a odovzdanie `ref` ako druhého argumentu do funkčnej komponentu. To pridáva nejaký kód kotla. Priame odovzdávanie refery ako rekvizita eliminuje tento ďalší kód.
lepšie zapuzdrenie
Pri používaní „ForwardRef“ si musí byť detský komponent uvedomený, že prijíma REF a musí ho pripojiť k príslušnému prvku DOM. Odovzdávanie ref ako rekvizity umožňuje dieťaťu, aby zostala nevede o REF, čím sa zlepšila zapuzdrenie.
ľahšie refaktoring
Ak potrebujete refaktorovať strom komponentov a zmeniť bod prílohy REF, je jednoduchšie aktualizovať názov propa, namiesto toho, aby ste museli aktualizovať volanie „ForwardRef“ na viacerých miestach. Vďaka tomu je kódová základňa udržiavateľnejšia.
v súlade s komponentmi triedy
V komponentoch triedy sú odkazy pripevnené pomocou „ref` prop, nie prostredníctvom špeciálneho mechanizmu„ ForwardRef “. Umožnenie REFS ako rekvizít vo funkčných komponentoch poskytuje konzistentnejšie API v rámci tried a funkčných komponentov.
ľahšia kontrola typu
Pri používaní TypeScript je jednoduchšie zadať skontrolovať ref odovzdaný ako prop v porovnaní s použitím typov `ForwardRef` a` refattributes ". Typ prop sa dá odvodiť priamo z objektu „ref`.
Stručne povedané, nová funkcia REFS AS PROPS robí API React intuitívnejšie, znižuje kotlovú dosku, zlepšuje zapuzdrenie a robí kódovú základňu udržateľnejšie - všetky zlepšujú efektívnosť vývojárov pri práci s REFS v React 19 a ďalej [1] [3] [4].
Citácie:[1] https://www.copycat.dev/blog/react-forwardref/
[2] https://stackoverflow.com/questions/58578570/Value-of-using-react-forwardref-vs-custom-ref-prop
[3] https://legacy.reactjs.org/docs/forwarding-refs.html
[4] https://www.reddit.com/r/reactjs/comments/1asgpy9/ref_as_a_prop_advance_beginner_question/
[5] https://blog.logoclect.com/why-you-should-use-refs-sparlydly-in-production/
[6] https://react.dev/blog/2024/04/25/react-19 Upgrade-guide
[7] https://dev.to/dalcio/react-Performance-usestate-reducer-ref-thoretical-summary-1bok
[8] https://www.freecodecamp.org/news/new-react-19-foratures/