Reagovat: Stav versus rekvizity

Dnešní datum je 4. dubna 2019. Nemám ponětí, kam uplynuly poslední tři měsíce a nemůžu uvěřit, že už jsem na půli prvního týdne Mod 4 v Flatironu. Každý den se učím a realizuji tolik nových věcí. Někdy se cítím jako Scarlett Johansson v Lucy, jindy jsem si docela jistý, že veškerá činnost v mém mozku přestala.

Po třech týdnech JavaScriptu je Mod 4 o React. Nejprve musím říct - miluji JavaScript a plánuji pracovat na zvládnutí jazyka, když mám trochu více volného času. Jak již bylo řečeno, také si zatím užívám knihovnu React.JS. Vypadá to, že to byl způsob, jakým jsem si přál, abych mohl přemýšlet, organizovat a manipulovat s DOM během našich vanilkových dnů JavaScript.

Dvě z nejdůležitějších datových struktur v Reactu jsou stav a rekvizity. Protože React je o komponentách a komponenty jsou o jejich datech, hodně jsme se zabývali stavem a rekvizitami a chtěl jsem se na ně podívat trochu dále. Stav i rekvizity jsou prosté objekty JS, které uchovávají data, spouštějí aktualizace vykreslení a jsou deterministické, ale jaké jsou jejich rozdíly? Co každý dělá a kdy je mám použít?

Stát

Stav komponenty je místo, kde jsou uložena data, která určují, jak se tato komponenta chová a jak se vykresluje. Stát je proměnlivý, ale komponenta je hlavně zodpovědná za změnu jeho stavu. Hodnoty stavu mohou být zděděny z nadřazených komponent, ale změna ve stavu podřízených komponent by se v nadřazené položce neprojevila. Kdy tedy používáme stát? Protože stav „zvyšuje složitost a snižuje předvídatelnost“, je vhodnější omezit použití stavu na součásti a měli bychom jej používat pouze tehdy, když součást bude muset změnit jeden ze svých atributů.

Rekvizity

Tok dat v Reactu je srovnatelný s řekou tekoucí po proudu nebo s rodokmenem uvnitř rodokmenu; data stékají směrem dolů od top komponent do komponent, které na ně spoléhají, nebo podřízené komponenty zdědí data od svých nadřazených komponent. Rekvizity jsou nádoby, které používáme k předávání těchto dat, jsou to DNA. Rekvizity jsou zděděny z nadřazených komponent dítěti a také se používají k předávání dat z tohoto dítěti následnému dítěti. Rekvizity jsou neměnná data typu „pouze pro čtení“. Jakmile je tento objekt vytvořen, jeho vlastnosti nelze změnit.

Vydrž, takže stav je řízen uvnitř komponenty a rekvizity mohou být předávány dolů dolů k podřízené komponentě. Neexistuje způsob, jak odrážet změny podřízené komponenty u některého z jejích předků? Nechceme komunikovat změny s dalšími souvisejícími prvky, abychom je udrželi v synchronizaci? No, existuje! Můžeme použít ~ funkce zpětného volání ~!

Bohužel jsem dnes mimo čas, takže se podívejte na můj brzy přicházející sledovací blog o funkcích zpětného volání a zrušení stavu!

Zdroje: