Flux nie je priamo potrebny pre pracu s Reactom, ale je to skor convenience... je to viacmenej store pattern obaleny eventami.
Kratky overview napr. tu.
V principe ak mas napriklad
blog page component, ktory obsahuje
blog list component, ktory ma
blog entry components, tak nechces posielat http request z kazdeho
blog entry componentu na ziskanie potrebnych dat. Standardne posles GET @ /posts z
blog list componentu a do
blog entry componentov poskytnes len relevantne data pre dany entry. Co vsak urobit, ked chces zmenit napr. kategoriu pre nejaky
blog entry? Urobis to vo vnutri
blog entry componentu (PUT @ posts/:id), ale nasledne mozno chces refreshnut
blog list, lebo to napriklad malo nejake nasledky (zmena struktury listu, alebo aj vynechanie entry v danom liste). Samozrejme to vzdy vies vyriesit nejakou formou komunikacie s
blog entry ->
blog list, ale Flux poskytuje jednoduchy sposob jednosmerneho toku dat, kedy ti staci dispatchnut event, ktory je nasledne propagovany a odchyteny tam, kde to je potrebne (v tomto pripade v
blog liste, kde vyvola refresh listu). Dalo by sa povedat, ze to zjednodusuje pracu s datami a zabranuje to chaotickej komunikacii medzi komponentami pri vacsich aplikaciach.
Pokial chces nieco odlezane (a open-source), tak realne mas na vyber z Angularu, Reactu, Emberu a KO.
- Knockout je jednak MVC a co sa tyka rychlosti, tak je skor na pomalsej strane z tejto skupiny
- Angularu 1 by som sa uz teraz vyhol... ked sa mozno o rok, dva zabehne Angular 2, bude mat opat zmysel, ale pokial chces A1 pouzivat na komponentovy layout, tak budes nadavat
- Ember je tiez MVC a dokazes v nom rychlo napisat appku, pokial nepotrebujes urobit nieco krkolomne, vtedy zacnes viac extendovat, ako je prijemne. Ember je velmi opinionated. Na templating pouziva Handlebars, co sa mne vzdy velmi pacilo.
- React vie byt asi najviac MVVM, aj ked je to skor iba V(M) v zaklade, ak vsak prezijes JSX a akceptujes Flux, tak je prijemny na pouzivanie. Miestami sa moze zdat, ze pridavas viac komplexity, ako by si mozno chcel, ale aspon nemusis preliezat mury konvencii, ako v pripade Emberu.
Na aplikacie s vela resourcami, kde nepozadujes velmi fancy fukncionalitu, by som volil Ember a na vsetko ostatne React. Najlepsie ale urobis, ak si urobis nejaky weekendovy projekt v oboch a zistis, co ti viac vyhovuje. Je to naozaj pain vybrat ten spravny a to som teraz nebral do uvahy Mithril, Aureliu, Riot, Polymer alebo Ext JS. Najviac sa mi ale osvedcila jednoduchost v tychto frontendovych FW. Asi aj preto som momentalne na Vue. Pouziva sa lepsie, ako Angular, je rychly, lahko testovatelny, dokazes v nom to, co v Reacte (napr. uz sa pripravuje dokonca aj Vue-Flux) a nezavadzia ti ako Ember
