Späť na blog

Používanie HTTP klienta Axios v React aplikácii: Návod

Používanie HTTP klienta Axios v React aplikácii: Návod

Mnoho webových aplikácií čelí v určitom bode svojho vývoja potrebe prepojenia s REST API. Pre React webové aplikácie môžeme použiť Axios, ľahký HTTP klient založený na $http službe v rámci Angular.js v1.x. Funkcie sú podobné natívnemu Fetch API.

Axios je založený na sľuboch (promises), čo nám umožňuje začleniť JavaScriptové async a await pre čitateľnejší synchrónny kód. Podporuje tiež zachytávanie a rušenie požiadaviek. Okrem toho obsahuje vstavanú ochranu na strane klienta proti cross-site request forgery.

V tomto návode si ukážeme, ako použiť Axios na prístup k populárnemu JSON Placeholder API v ukážkovej React aplikácii. Viac o formáte JSON v JavaScripte sa môžete dozvedieť z tohto návodu.

Požiadavky

Na dokončenie krokov popísaných v tomto návode budete potrebovať nasledujúce komponenty:

Krok 1: Inštalácia Axios v React projekte

Axios je priamo dostupný ako npm modul. Pozrite si Axios na npm. Všetko, čo potrebujeme, je vytvoriť React projekt a nainštalovať balík Axios.

Nasledujúci príkaz npx spustí create-react-app na vytvorenie nového React projektu. Názov projektu sa použije na vytvorenie vyhradeného adresára pre projekt. Tu sme projekt pomenovali react-axios-demo. Spustite príkaz:

npx create-react-app

Zmeňte aktuálny adresár na novovytvorený adresár projektu:

Ďalej zavolajte príkaz npm install na inštaláciu Axios. Ak nie je špecifikovaná žiadna verzia, potom npm automaticky stiahne a nainštaluje najnovšiu verziu Axios:

npm install axios

Náš projekt je teraz pripravený na použitie Axios! Je čas uviesť jeho funkcie do praxe.

Krok 2: Vytvorenie požiadavky GET

V tomto kroku si ukážeme vytvorenie nového komponentu, ktorý používa Axios na odoslanie požiadavky GET.

Najprv vytvorte nový komponent PersonList, ktorý bude zobrazovať zoznam mien. Vytvorte vyhradený adresár na uloženie komponentu:

mkdir -pv

Ďalej vytvorte súbor PersonList.js :

Otvorte súbor v textovom editore. Pre pohodlie a čitateľnosť používame Visual Studio Code . Zadajte nasledujúci JavaScript kód:

 

this.state.persons

Tu:

  • Importovali sme React and Axios, aby sme ich mohli oba použiť v komponente.

  • Napojíme sa na životný cyklus componentDidMount a odošleme požiadavku GET.

Môžete použiť axios.get(<url>) z koncového bodu API na získanie promise (vráti objekt odpovede). V rámci objektu odpovede sa nachádzajú požadované dáta. Tie potom priradíme k hodnote person. Môžeme tiež získať ďalšie informácie o požiadavke, ako napríklad stavový kód pod res.status alebo ďalšie informácie z res.request.

Ďalej musíme pridať náš komponent do hlavného súboru App.js. Pridajte nasledujúci kód:

 

import PersonList

Konfigurácia pre tento krok je dokončená. Teraz môžete aplikáciu spustiť a otestovať ju pomocou svojho obľúbeného prehliadača. Spustite vývojový server:

Axios React code screenshot 1

Ako môžeme vidieť, výstup zobrazuje zoznam mien ľudí v náhodnom poradí:

React app

Krok 3: Vytvorenie požiadavky POST

V tejto časti si ukážeme použitie knižnice Axios na vykonanie ďalšej metódy HTTP požiadavky s názvom POST. Na demonštráciu tohto je naším cieľom vytvoriť nový komponent v našom React projekte s názvom PersonAdd.

Vytvorte súbor PersonAdd.js:

Axios React code screenshot 2

Potom otvorte súbor v textovom editore a zadajte nasledujúci kód:

Axios React code screenshot 3

V tomto kóde preberáme vstup od používateľa a odosielame (POST) obsah do API. Vo vnútri funkcie handleSubmit zabraňujeme predvolenej akcii formulára a aktualizujeme stav na základe vstupu používateľa. Pri použití POST vracia rovnaký objekt odpovede. Tento objekt môžeme použiť vo vnútri volania then. Na splnenie požiadavky POST zachytávame vstup používateľa a pridávame ho spolu s požiadavkou POST. To nám poskytne odpoveď. Odpoveď zaznamenávame pomocou console.log. Malo by to zobraziť vstup user vo formulári.

Ďalej pridajte komponent do App.js. Celý kód by mal vyzerať takto:

Axios React code screenshot 4

Teraz je čas otestovať zmeny. Spustite vývojový server:

Skontrolujte zmenu vo webovom prehliadači:

Axios React code screenshot 5

Krok 4: Vytvorenie požiadavky DELETE

V tejto časti si ukážeme odstraňovanie položiek z API pomocou axios.delete a použitím URL ako parametra. Na demonštráciu vytvorte komponent PersonRemove. Vytvorte súbor PersonRemove.js v adresári src/components:

Axios React code screenshot 6

Potom otvorte súbor v textovom editore a pridajte nasledujúci kód:

Axios React code screenshot 7

Tu objekt res poskytuje informácie o požiadavke. Potom môžeme použiť console.log po odoslaní formulára.

Ďalej implementujte komponent do App.js:

Axios React code screenshot 8

Je čas znova otestovať náš kód. Spustite server:

Mali by ste vidieť nový formulár, ktorý prevezme meno používateľa a odstráni ho zo zoznamu:

npm start

Step 5: Použitie základnej inštancie v Axios

Teraz budeme pracovať so základnou inštanciou Axios. Tu môžeme definovať URL a ďalšie konfiguračné prvky. Ak ju chcete implementovať, vytvorte samostatný súbor api.js:

Axios React code screenshot 9

Otvorte ho v textovom editore a zadajte nasledujúci kód:

export default axios.create

Po jeho nastavení ho môžeme použiť vo vnútri komponentu PersonRemove . Kód bude vyzerať takto:

Axios React code screenshot 10

Tu je http://jsonplaceholder.typicode.com/ nastavená ako základná URL. Teraz už nemusíme používať celú URL zakaždým, keď pristupujeme k endpointu API.

Krok 6: Implementácia async a await

V tejto časti sa pozrieme na to, ako implementovať async a await na prácu s prísľubmi. Kľúčové slovo await vyrieši promise a vráti value. Túto value môžeme priradiť do premennej pre pohodlnejšie použitie.

Takto bude vyzerať aktualizovaný kód PersonRemove.js:

Implement async and await

Tu sme nahradili .then(). Akonáhle sa promise vyrieši, uložíme hodnotu do premennej response.

Na záver

V tomto návode sme preskúmali rôzne príklady použitia Axios na prácu s REST API. Kódy demonštrujú vytváranie HTTP požiadaviek a spracovanie odpovedí.

Máte záujem dozvedieť sa viac o JavaScripte? Pozrite si naše ďalšie príručky pre začiatočníkov o rôznych konceptoch a funkciách JavaScriptu, napríklad dátum a čas, manipulácia s reťazcami, triedy, a objekty.

Príjemné programovanie!

author

Hark Labs

Autor · CloudSigma

Preslav Dobrev je kreatívny dizajnér v spoločnosti CloudSigma, ktorý sa zameriava na konzistentnú firemnú identitu prostredníctvom tradičných a inovatívnych marketingových kanálov. Dokáže brilantne spájať umeleckú víziu so strategickým marketingom, čím vytvára pôsobivé príbehy značky.

Komentáre

Zatiaľ žiadne komentáre. Buďte prvý.