Szerelem frontend

Ha csak egyetlen dolgot említeni számos fórumon reagálni vagy frontend általában, ez lesz a kérdés: hogyan lehet egy AJAX kérés reagálni alkalmazásokat.
A legnagyobb veszélye - ez az, ami igazán reagálni gyakran tartják számon freymvork, és az emberek, akik dolgoztak freymvorkami mint a szögletes hozzászokott dolgozik API hívások a dolgokat, mint $ segítők, mint a http és a könyvtárak által nyújtott szögletes. Ha ez a helyzet, mert másképp reagálnak reagál - ez a „csak” nézet könyvtár állapota kezelésére és életciklus módszereket.
Szóval hogyan lehet, hogy egy AJAX kérés esetén bibiloteka nem ad ki ezt a dobozt?
Önnek joga van szabadon használni 3rd party könyvtárak (más kis bibilioteki bizonyos problémák megoldásában). Használhatja a beépített böngésző végrehajtás letölteni (esetleg szeretne venni whatwg leolvasási Polyfill. Lekérése támogatása régebbi böngészők), vagy használja Axios. Én személy szerint inkább az utóbbi, mint Axios egy egyszerű API, és működik a legtöbb böngészőben.
Mindössze annyit kell dolgozni Axiosz be, hogy tudja, hogyan működik promisses - akkor is, ha valaha is használt jQuery.ajax, akkor már értem, hogy mit és hogyan.
Hadd magyarázzuk alapjait egy egyszerű GET kérés:
Mi otpravyalem GET kérés egy adott URI és logiruem választ. Axios már azt jelenti, hogy a válasz lesz JSON objektum, így nem kell megadnia semmilyen további lehetőségeket.
Mint látható, ami egy AJAX kérés reagálni nem sokban különbözik a kezdetektől fogva JQuery vagy szögletes. Az igazi kérdés az, hogy - az.
Mikor és hol AJAX kérés?
Ha a fejlődő alkalmazás és a munkafolyamat, meg kell gondolni előre, hogyan kell küldeni / fogadni adatokat kell elhelyezni (adatáramlás) az alkalmazásban:
- Melyik a komponensek képesek lesznek, hogy küldjön egy kérést az adatokat?
- Mivel az adatokat továbbítják a többi komponens?
- Ez eladott több mint egy akciót, ami hasznos lehet más esetekben (letölthető Több információra böjt ezen az oldalon, letölteni az adatokat a főoldalra kijelző hasonló helyzet)?
Itt van egy pár jó módja, hogy a „legjobb gyakorlat” a megoldás erre a problémára, hol kell használni egy AJAX kérés:
componentWillMount
Az összetevő, mint a mi példánkban
Amennyiben a válasz (válasz), továbbítja az ID a kellékek, a komponens küld AJAX kérés, majd az eljárás render () komponens be van jelölve, ha az adatok (adatok) a ustavnoleny állapotban van, a tartalom kerül.
Úgy tűnik, hogy ez a tökéletes megoldás a jelenlegi, hanem minősül anti-pattern, hiszen most már a fenséges a tartály alkatrész, amely össze van kötve a kijelző elem annak végrehajtása azt umenshaetsya újrafelhasználhatóságot az alkatrész.
Primichaniya Fordítás: Ebben az esetben ez úgy értendő, hogy ha például a fog használni blogpost alkatrész máshol, akkor is meg kell adni a cikk id, és minden komponens minden egyes alkalommal, hogy egy AJAX kérés, hogy néhány adatot, amelyek az adott neki.
Adatátvitel a szülő alkatrész keresztül kellékek
Ahelyett, do a szülő komponens, összetevő
Ha használom a fogalom a szülő alkatrész, akkor is meg kell szem előtt tartani a megjegyzés az előző eljárás egy AJAX kérés kötelező alkatrész végrehajtásához. Meg kell kerülni a használatát több tartály / smart alkatrészek az alkalmazásban.
Manager használati állapotára, mint például fluxus, Redux vagy mobx.
Amellett, hogy a döntés, hogy egy bónusz, hogy most képes arra, hogy egy AJAX kérés bárhonnan a app, amit szerettem (amikor megváltoztatja az URL, az eljárás componentWillMount, az eseményen a szerveren keresztül foglalat), és amikor megkapjuk az adatainkat és nekik a boltba, a komponenseket, illetve frissül.
2. függelék - teszi szép
Most, hogy tudjuk, hogyan lehet az adatokat az API segítségével, biztosítanunk kell, hogy a felhasználó tudja, hogy valami történt. Erre kicsit kijavítjuk render () metódus:
Köszönhetően, hogy ellenőrizze, van-e adat, akkor eldöntheti, hogy megjelenítse a tartalmat a felhasználó, vagy az adott tartalom megjelenítéséhez még töltődik. Egy példa a e határozat végrehajtására:
Úgy néz ki, jobb, ugye? Nézd itt van: facebook-content-helykitöltő-dekonstrukció. Ahhoz, hogy megértsük, hogyan facebook kigúnyolja Nagyböjt, amíg a rakományt. Természetesen lehet hozzáadni preloader mit akar