React a použítí Storů rubrika: Programování: JavaScript

5 anti.cz
položil/-a 20.8.2015
 
upravil/-a 20.8.2015

Ahoj,

mám teoretickou otázku ohledně používaní Storů. Co mám appku, tak jí mam rozdělenou na dva hlavní bloky upperForm a bottomForm a každá má svůj Store. Store poslouchají jen rodičovské komponenty bloků. Sice je tam hodně props, ale to mi nevadí. Díky tomu mi tečou všechny data přes jedno místo a tak jak přijdou, tak se zobrazí. upperFormStore dělá víc věcí: zpracovává filtry, zobrazovaní nápověd a náhled produktu a bottomFormStore výpis položek, nějaké počítaní a náhledy položek. Aby Story nebyly moc velké, tak to zpracovaní, počítaní atd. mám v helpru a Story si to jen volají.

Myslíte si, že je to vyloženě spatně?

Co jsem našel různě příklady, tak komponenty poslouchají více Storů atd. Ale nějak se mi nelíbí myšlenka, že vnuk poslouchá 3 Story a pravnuk 2 a rodič neví co bude dítě, vnuk dělat.

Jako výhoda, když to jde všechno od z hora mi přijde, že můžu reagovat na to co dítě zobrací. Dost mi to pomohlo, když pak přišly dodatečné požadavky typu "A nešlo by ještě tady zobrazit tohle"

Komentáře

  • skliblatik : Nebude ten rodič časem příliš "god"? K čemu potřebuje rodič vědět co bude dítě dělat, když přes něj informace jen "prolítává"? 20.8.2015
  • anti.cz : Je god, ale to je i účel. Potřebuje, nepotřebuje vědět, je to kvůli těm dodatečným požadavkům. Když je potřeba zobrazit informaci co se týká dítěte u rodiče, nebo u bratra v jiné větvi(např počet výsledků) tak bych musel poslouchání Storu dát na rodiče(Tak to i vzniklo, protože jsem to musel dát výš a pak zase výš až jsem si řek, že se na to můžu.... a dal jsem to pak úplně nahoru). Sice je rodič god, ale posílá ta data kam je potřeba a jednoduše přepošle cokoli kamkoli. Vycházím z toho, že zadavatelé často pořádně nevědí co vlastně chtějí a takhle se dá rychle a jednoduše reagovat na nečekaný požadavek. V Podstatě funkcionalitu jen přidávám s minimálními změnami původního kódu(přidání props do jiné větve například). 20.8.2015
  • skliblatik : "Když je potřeba zobrazit informaci co se týká dítěte u rodiče, nebo u bratra v jiné větvi(např počet výsledků)". Tak mě napadají možnosti (když se budeme bavit o 1 stránce, nikoliv komponentách, které mají být znovupoužitelné mezi stránkami): 1) buď potřebuju mít "ResultList" vyrenderovaný úplně jinde než "ResultListInfo" (kde je zmíněný počet výsledků) pak si myslím, že by měla každá komponenta poslouchat nezávisle 2) nebo jsou "ResultList" a "ResultListInfo" blízko u sebe (v jednom kontejneru), pak možná nejsou potřeba oddělovat a lze je sloučit do jediné komponenty 3) nebo platí 2 ale chci jednu komponentu "znovupoužít" jinde na stránce - ale pak by tato znovupoužívaná komponenta měla sama naslouchat. 20.8.2015
  • Občan : God, je v pořádku, že přes něj teče vše v situaci, kdy člověk používá Flux architekturu a globální store. Situace, kdy sourozenci a brantranci dělají oddobnou věc prostě a jenom něco, co je hold nevýhoda Fluxu a jedna z možností, jak to řešit je více props. Těch možností je pak vícero. 20.8.2015
  • anti.cz : @Občan: Můžu se zeptat jaké jsou například ty další možnosti? Myslíš něco v tom smyslu, že v Godu naplním nějaké proměnné a pokud je nějaké dítě, vnuk potřebuje tak si to dá do state? 21.8.2015
odkaz
4 HonzaMarek
odpověděl/-a 3.9.2015

Nejspíš je to v cajku. Je dobré si rozdělit komponenty na ty chytré a pod nima mít hloupé, co zobrazujou data, který získaj ty chytrý. Ohledně architektury doporučuju kouknout na Redux, pro mě to byl dar z nebes. http://rackt.github.io/redux/

Komentáře

  • Stefano : redux je super 3.9.2015
  • anti.cz : diky, podivam se 7.9.2015

Pro zobrazení všech 2 odpovědí se prosím přihlaste:

Rychlé přihlášení přes sociální sítě:

Nebo se přihlaste jménem a heslem:

Zadejte prosím svou e-mailovou adresu.
Zadejte své heslo.