Szerelem frontend

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 elviszi kellékek cikket tartalmazó azonosító és egy kérés adatokat letölteni. Az alkalmazás lehet kinézni:

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ő akkor az összes adat átvitelére a sorban a kellékeket és mi mindent megteszünk, szülő komponens adatokat kap. Ez főleg formájában valósítjuk meg az URL változások a felhasználó intézkedéseket a reagálnak-router.

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

Kapcsolódó cikkek