Správa stavu
React a Jotai zajišťují správu stavu v kódu.Použijte atomy Jotai k ukládání stavu
Je dobrým zvykem vytvořit tolik atomů, kolik potřebujete ke správě stavu.Nepoužívejte useRef k ukládání stavu
Vyhněte se používání useRef k ukládání stavu.
Pokud chcete ukládat stav, měli byste použít useState nebo atomy Jotai s useAtomState.
Podívejte se, jak spravovat překreslení, pokud máte pocit, že potřebujete useRef, abyste zabránili některým překreslením.
Správa překreslení
Překreslení může být obtížné spravovat v Reactu. Zde jsou některá pravidla, která je třeba dodržovat, abyste se vyhnuli zbytečnému překreslování. Pamatujte, že můžete vždy zabránit opakovanému renderování pochopením jejich příčiny.Pracujte na úrovni kořene
Vyhýbání se překreslení v nových funkcích je nyní snadné tím, že je eliminujete na úrovni kořene. Komponenta “PageChangeEffect” obsahuje pouze jeden “useEffect”, který drží veškerou logiku pro provedení změny stránky. Tímto způsobem víte, že existuje pouze jedno místo, které může spustit překreslování.Vždy si dvakrát rozmyslete před přidáním useEffect do vaší kódové databáze
Opakované renderování jsou často způsobeny zbytečným useEffect.
Měli byste si myslet, zda potřebujete useEffect, nebo zda můžete přesunout logiku ve funkci obsluhy událostí.
Pro vás je obecně snadné přesunout logiku do funkce handleClick nebo handleChange.
Můžete je také najít v knihovnách jako Apollo: onCompleted, onError atd.
Použij sourozeneckou komponentu k extrakci useEffect nebo logiky načítání dat
Pokud máte pocit, že potřebujete přidat useEffect do základní komponenty, měli byste zvážit její extrakci v postranním vozíku.
Stejný postup můžete aplikovat na logiku získávání dat pomocí Apollo hooks.
Použijte rodiny atomů a selektory
Rodiny atomů a selektory jsou skvělým způsobem, jak se vyhnout překreslování. Jsou užitečné, když potřebujete uložit seznam položek.Neměli byste používat React.memo(MyComponent)
Vyhněte se používání React.memo(), protože to neřeší příčinu překreslování, ale spíše přeruší řetězec překreslování, což může vést k neočekávanému chování a ztěžuje refaktorování kódu.
Omezit použití useCallback nebo useMemo
Často nejsou nutné a kód ztěžují na čtení a údržbu pro nepodstatné zlepšení výkonu.
Console.logs
Příkazyconsole.log jsou hodnotné při vývoji, protože poskytují pohled na hodnoty proměnných a průběh kódu v reálném čase. Ale, zanechání v produkčním kódu může vést k několika problémům:
- Výkon: Přílišné logování může ovlivnit výkon za běhu, zejména u aplikací na straně klienta.
- Bezpečnost: Logování citlivých dat může vystavit kritické informace komukoliv, kdo nahlédne do konzole prohlížeče.
- Čistota: Naplnění konzole logy může zatížit důležitá varování nebo chyby, které je třeba vidět.
- Profesionalita: Koneční uživatelé nebo klienti kontrolující konzolu a vidící množství logovacích příkazů mohou zpochybnit kvalitu a úroveň kódu.
console.logs, než uvedete kód do produkce.
Pojmenovávání
Pojmenování proměnných
Jména proměnných by měla přesně zobrazovat účel nebo funkci proměnné.Problém s generickými jmény
Generická jména v programování nejsou ideální, protože postrádají specifikaci, což vede k nejednoznačnosti a snižuje čitelnost kódu. Taková jména neposkytnou informace o účelu proměnné nebo funkce, čímž ztěžují vývojářům pochopení záměru kódu bez hlubšího zkoumání. To může vést ke zvýšené době ladění, vyšší náchylnosti k chybám a obtížím při údržbě a spolupráci. Mezitím, použití popisných jmen činí kód samozřejmým a snadněji navigovatelným, čímž se zvyšuje jeho kvalita a produktivita vývojáře.Některá slova, kterým se vyhnout v názvech proměnných
- dummy
Obsluhovače událostí
Jména obsluhovačů událostí by měla začínathandle, zatímco on je prefix používaný k pojmenování událostí v komponentech props.
Volitelné props
Vyhněte se tomu, abyste pro volitelný props předávali výchozí hodnotu. PŘÍKLAD Vezměte komponentEmailField definovanou níže:
Komponenta jako props
Pokuste se co nejvíce předávat neinstancované komponenty jako props, aby si děti mohly samy rozhodnout, které props potřebují předat. Nejčastější příklad je komponenta ikon:<MyIcon>
Prop Drilling: Udržujte to minimální
Prop drilling, v kontextu React, odkazuje na praktiku předávání stavových proměnných a jejich setterů skrze mnoho vrstev komponent, i když mezilehlé komponenty je nepoužívají. Zatímco občas je to nutné, přehnané prop drilling může vést k:- Snížená čitelnost: Sledování původu nebo využití vlastnosti může být komplikované ve složitě vnořených strukturách komponent.
- Problémy s údržbou: Změny v struktuře vlastností jedné komponenty mohou vyžadovat úpravy v některých komponentech, i když tyto vlastnosti přímo nepoužívají.
- Snížená znovupoužitelnost komponentů: Komponent přijímající mnoho props pouze pro jejich předání, se stává méně univerzálním a obtížněji použitelným v různých kontextech.