Redaks életben

Redaks életben

Report beszél a valós problémákat, hogy a találkozás, ha a fejlődő alkalmazások: hogyan kell kezelni a mellékhatások, hová tegye az üzleti logika és hogyan kell tesztelni az alkalmazást. Az elején a jelentés - egy rövid bevezetés a Redaks.

Redaks életben

Ez - Dan Abrams. Ez 27K követői (ez jó). És tavaly, ő redaks. Redaks - a könyvtár a szervezet alkalmazás architektúra.
  • Redaks életben

    A fő különbség redaksa más megközelítések - az, hogy 1) az összes állam a kérelem tárolják egy helyen ...
  • Redaks életben

    Redaks életben

    Ahogy mondtam, minden állam a kérelem tároljuk egy helyen. Ez a hely az úgynevezett „oldal”. Például egy ilyen alkalmazás, amely megjeleníti a számot.
  • Redaks életben

    Side lehet.
  • Redaks életben

    A második alapelv - az állam a kérelem nem változtathatók.
  • Redaks életben

    Redaks életben

    A harmadik alapelv - minden változás feldolgozott funkció, amely az úgynevezett „redyuser”, és hogy tisztának kell lennie. Ismét: akció - egy olyan esemény, amely által generált küldő () függvény.
  • Redaks életben

    Pure funkció -, hogy a funkció mindig ugyanarra a bemeneti érték adja vissza ugyanazt az eredményt + nem változtat semmit ezen kívül is. Sinus - tiszta funkció, mert az azonos szögben mindig visszatér ugyanaz az érték. parseInt () - net. $ .ajax () - nem egyértelmű, mert különböző időpontokban lehet más értékkel tér vissza.
  • Redaks életben

    Az első funkció - tiszta, mert ez nem változtat semmit kívülről. A második - nem, mert megváltoztatja a beállítást, és a külső kód hívása után ez a funkció egy másik paramétert. Harmadszor - nem, mert ő is megváltozik a rendszer állapotát kívül magad (kiírja valamit a konzol).
  • Ez a funkció, amely kezeli a Műveletek, az úgynevezett redyuserom. Ez kezeli minden olyan intézkedés, amely előfordul a kérelmet. A függvény a bemenet a jelenlegi állapotában a kérelmet, és az intézkedés, hogy a nemrég történt, és minden típusú cselekvés megváltoztatja az állam a módon azt jónak látja. Felhívjuk figyelmét, hogy az állam közvetlenül nem változott. Ehelyett visszatér egy új állam, amely Redaks maga helyettesíti a régi.
  • Redaks életben

    Redaks életben

    és azok szerint redaks alkalmazás épül egy ilyen rendszer. Kérdés: mit kell tenni mellékhatások?
  • Mellékhatások - ez az, amikor megváltoztat egy globális változót, hogy a kérést a szerver, írjon valamit a naplóban.
  • Redaks életben

    A probléma az, hogy a rendszer a mellékhatások, nincs helye. Az egyetlen hely, ahol van egy változás - ez redyuser, és tisztának kell lennie funkciót.
  • Redaks életben

    Segítség jön middleware. Midlveyr között kódot dispatchit Action Games (azaz generál esemény) és redyuserom (azaz egy olyan funkciót fognak alakítani egy új állapot), áthalad maga minden felmerülő Hozzászólások, megváltoztatni őket (és ha szükségesnek tartja), és elküldi a következő - vagy nem küld . Midlveyra jellemzője, hogy tiszta legyen a funkcióra nincs szükség -, és így lehet, hogy mellékhatások, mint például a kéréseket a szerver, vagy bármi.
  • Redaks életben

    Sőt midlveyrov lehet sok, és ők szervezik a lánc.
  • Redaks életben

    Tény, midlveyr - ez csak egy funkciója, amely a jelenlegi oldalas, a következő a láncban midlveyr és az aktuális cselekvés és nem valami vele. Midlveyry csatlakozik létrehozásakor Stora. CreateStore és applyMiddleware - ez redaksa módszerekkel. Nem fogom elmondani, hogyan kell írni a midlveyr mert megteremti a middlveyr dolgozni mellékhatásai - túl nehéz. Ehelyett nézzük a megoldásokat, amelyek már léteznek. By the way, midlveyry létrehozni egy közösséget, és nem tartalmazza a szállítási redaksa.
  • Rengeteg szervezési módjai mellékhatásokkal. Tudom kettő. Az első - a Redux-puffanást, amellyel olyan alkalmazást készítünk a redaksom, találkozás pontosan. Miért van rá szükség? Klasszikus redaks képes dolgozni csak a cselekvés, amely képviseli az egyszerű tárgyakat.
  • Alkalmazása midlveyr Redux-thunk itt ezen a módon.
  • Redaks életben

    megkapja az esélyt, ahelyett, hogy egyszerű dolgok.
  • Redaks életben

    ... dispatchit funkciót. Ha zadispatchite funkció Redux-thunk oka, és hogy ez a módszer a küldő Store, amit aztán hívni, ha kell. Az ilyen függvények thunk-s.
  • Vagy így, ha lépéseket, hogy hozzanak létre egy külön funkció. Egy ilyen bevezetését, az úton - a standard sablont Redakse, és egy függvény, amely létrehoz egy fellépésre van akció-Teremtő.
  • Mi mást lehet csinálni Redux-thunk? Akkor dispatchit néhány akciójátékokat egy sorban elvégezni kijelentkezni, majd tiszta oldalas.
  • Redaks életben

    Akkor dispatchit eksheny időmérő pobesit felhasználó felugró modális ablakok. Meg tudod csinálni semmit, mert van egy küldő - és még egy aktuális állapotát Stora, amelyet át a második paraméter. Redux-thunk kényelmes egyszerű mellékhatások. Amikor szükség van, hogy szervezzen egy komplex áramlását mellékhatása, ez lesz kellemetlen. Ebben az esetben ez jól jön Redux-saga.
  • Mi a Redux-saga? Általában a saga - olyan megközelítés, hogy jött a háttérben. Redux-saga - egy alternatív megközelítés, hogy a szervezet a mellékhatások. Ehelyett dispatchit funkciók kezelése Redux-thunk ohmos, akkor hozzon létre egy saga, amely összegyűjti az összes feldolgozási logika benne. Ellentétben thunk-s kerülnek végrehajtásra, ha van nekik dispatchite, saga kezdődött, amikor az alkalmazás elindul és hogyan „munka a háttérben.” Hallgasd meg az összes saga akciójátékokat, hogy dispatchit oldalas, és eldöntheti, mi legyen velük. És mondák a redakse két előnye, összehasonlítva egy puffanást-s: - Lehetővé teszik, hogy szervezik a komplex szekvenciákat mellékhatások - és ők nagyon könnyen vizsgálni Lássuk, hogy néz ki a saga.
  • Redaks életben

    Emlékszel a régi példa a bejelentkezés a puffanást-it? Nézzük változtassa meg a saga.
  • Redaks életben

    Mi változik? - A funkció válik generátor - Közvetlen hívás helyébe indirekt módon hívás (); feladó () bekezdése helyébe a put () - típusú vételi változik szinkron (nincs callback) - és itt meg lehet írni, összetett aszinkron kérések
  • Az Akció játékok, akkor iratkozz kétféleképpen. Az első - egyszerű: csavarja saga és kérjen Redux-saga nevezni minden alkalommal lesz akció LOGIN_REQUESTED.
  • A második módszer sokkal bonyolultabb. Azt hogy a saga kód egy végtelen ciklusba, és tegyük elején hozam take (LOGIN_REQUESTED). Amikor saga kezdődik a műveleteit, eléri ezt a sort, megáll, és folytatni, amíg nem keltünk LOGIN_REQUESTED.
  • Redaks életben

    A második módszer lehetővé teszi, hogy néhány fogást akciójátékok. Itt a kód, hogy helyezze pontok végrehajtása csak mikor lesz ANOTHER_ACTION. Ő megelőzte LOGIN_REQUESTED.
  • Tehát saga beállítva. Ezek után azonnal megindul a hívás CreateStore (). Példák Sagami kód
  • Redaks életben

    Az üzleti logika egyszerű.
  • Üzleti logika - midlveyram! Miért? - Mellékhatások, amely birtokolja a legtöbb üzleti logika (thunk-ah, vagy mondák), és így lesz midlveyrah. Logikus, hogy menjen a többi üzleti logika - Midlveyry hozzáférhet az összes vakok és redyusery - csak egy része - Lehet dispatchit néhány akciójátékokat További linkek: Kérdés: Hová tegye az üzleti logika / érvényesítés? Ajánlások kapcsolatos legjobb gyakorlatok akció-alkotók, szűkítő, és szelektor
  • Redaks életben

    Ez azt jelenti, hogy ez a rendszer, az üzleti logika kell a fekete blokk.
  • Példa kód egyik legjobb nyílt forráskódú projektek redakse. Redyusery benne a lehető legegyszerűbb ...
  • és cselekvés-Creator összetett és tartalmazzák az összes logika.
  • Mi általában lehet tesztelni Redakse? A szokásos akció-kriyetory vizsgálat egyszerű. Aszinkron - nehéz, mert vissza funkciót, és ellenőrizze, hogy a megfelelő funkció vissza, nehéz. Redyusery - csak. (Hogyan teszteljük: akció-Creator aszinkron akció-redyusery Creator ...)
  • Megmondom, hogyan lehet tesztelni a saga. Saga teszt nagyon egyszerű.
  • Ne feledje, ez dia? A legtöbb buzz -, hogy ezek a dedikált funkciókat.
  • hívás ($. ajax) okoz $ .ajax közvetlenül, és létrehoz egy deklaratív leírását egy egyszerű hívást JS-objektumot. Ennek köszönhetően a vizsgálat elég összehasonlítani két tárgyat deepEqual.
  • Itt egy saga ...
  • ... teszt nagyon egyszerű. Kérjük, vegye figyelembe, hogy annak érdekében, hogy szimulálják a szerver válaszát, egyszerűen adja át a generátort. És ellenőrizze, hogy a generátor $ .ajax, és ezt a kérést a szerver, ez nagyon egyszerű, mert a generátor visszaadja egy objektum egy leírást a hívást.
  • Ez megint algoritmust: egy kihívás AJAX-kérés ...
  • ... és csak összehasonlítani a nyilatkozatot. Hasonlóképpen, a generációs akciójátékok. Ha azt akarjuk, hogy ellenőrizze, hogy a saga generál akció LOGIN_SUCCESS. egyszerűen összehasonlítani a nyilatkozatot, amely visszatért a generátor, és a várható.
  • Redaks életben

    Redaks életben

    Redaks életben

    Redaks életben

    Kapcsolódó cikkek