logo

Axios in React: una guia per a principiants

A React, la comunicació de fons s'aconsegueix normalment mitjançant el protocol HTTP. Tot i que molts desenvolupadors estan familiaritzats amb la interfície de sol·licitud HTTP XML i l'API Fetch per fer sol·licituds HTTP, hi ha una altra biblioteca potent anomenada Axios que simplifica encara més el procés.

Taula de contingut



Introducció a Axios:

Axios, que és una biblioteca popular, s'utilitza principalment per enviar sol·licituds HTTP asíncrones als punts finals REST. Aquesta biblioteca és molt útil per realitzar operacions CRUD.

  1. Aquesta popular biblioteca s'utilitza per comunicar-se amb el backend. Axios admet l'API Promise, nativa de JS ES6.
  2. Amb Axios fem sol·licituds d'API a la nostra aplicació. Un cop feta la sol·licitud obtenim les dades a Return, i després les fem servir al nostre projecte.
  3. Aquesta biblioteca és molt popular entre els desenvolupadors. Podeu consultar a GitHub i hi trobareu 78.000 estrelles.

Abans d'instal·lar Axios, la vostra aplicació de projecte React hauria d'estar preparada per instal·lar aquesta biblioteca. Crea un Reacciona aplicació seguint els passos que es detallen a continuació...

Passos per crear una aplicació React:

Pas 1: A continuació es mostra l'ordre per crear l'aplicació React al vostre projecte...



npx create-react-app myreactapp>

Pas 2: Entreu al directori creat en el primer pas.

cd myreactapp>

Pas 3: Instal·leu la biblioteca Axios mitjançant l'ordre que es mostra a continuació...

npm i axios>

Estructura del projecte:



Captura de pantalla del 2023-10-06-09-44-29

matriu de cadenes de programació c

Les dependències actualitzades a package.json dossier.

'dependencies': {  '@testing-library/jest-dom': '^5.17.0',  '@testing-library/react': '^13.4.0',  '@testing-library/user-event': '^13.5.0',  'axios': '^1.6.2',  'react': '^18.2.0',  'react-dom': '^18.2.0',  'react-scripts': '5.0.1',  'web-vitals': '^2.1.4' },>

Exemple: Aquest fragment de codi utilitza axios per fer una sol·licitud HTTP al servidor de fons.

Javascript




// Filename - App.js> import React from>'react'>;> import axios from>'axios'>;> class App extends React.Component {> >state = {> >newfiles:>null>,> >};> >handleFile(e) {> >// Getting the files from the input> >let newfiles = e.target.newfiles;> >this>.setState({ newfiles });> >}> >handleUpload(e) {> >let newfiles =>this>.state.newfiles;> >let formData =>new> FormData();> >// Adding files to the formdata> >formData.append(>'image'>, newfiles);> >formData.append(>'name'>,>'Name'>);> >axios({> >// Endpoint to send files> >url:>' http://localhost:8080/files '>,> >method:>'POST'>,> >headers: {> >// Add any auth token here> >authorization:>'your token comes here'>,> >},> >// Attaching the form data> >data: formData,> >})> >// Handle the response from backend here> >.then((res) =>{})> >// Catch errors if any> >.>catch>((err) =>{});> >}> >render() {> >return> (> >> >> > type='file' // To select multiple files multiple='multiple' onChange={(e) =>this.handleFile(e)} /> onClick={(e) => this.handleUpload(e)}> Enviar fitxers ); } } exporta l'aplicació predeterminada;>>>

> 

Passos per executar l'aplicació: Obriu el terminal i escriviu la següent comanda.

npm start>

Sortida: Obriu el navegador i el nostre projecte es mostra a l'URL http://localhost:3000/

L'exemple anterior és només una petita descripció del codi per mostrar com utilitzar Axios al vostre projecte. A la propera secció parlarem de diversos mètodes com GET, POST i PUT a Axios.

Necessitat d'Axios a React:

Com hem comentat, Axios us permet comunicar-vos amb les API del vostre projecte React. Les mateixes tasques també es poden realitzar mitjançant AJAX, però Axios us ofereix més funcionalitats i característiques i això us ajuda a crear la vostra aplicació ràpidament.

Axios és una biblioteca basada en promeses, de manera que cal implementar algunes sol·licituds HTTP asíncrones basades en promeses. jQuery i AJAX també fan la mateixa feina, però en el projecte React, React gestiona tots i totes en el seu propi DOM virtual, de manera que no cal utilitzar jQuery en absolut.

A continuació es mostra un exemple per obtenir les dades del client mitjançant Axios...

Javascript




const getCustomersData = () =>{> >axios> >.get(>' https://jsonplaceholder.typicode.com/customers '>)> >.then(data =>console.log(data.data))> >.>catch>(error =>console.log(error));> };> getCustomersData();>

>

>

Ara anem al següent punt i entenem com es poden realitzar diferents operacions, com ara obtenir les dades o consumir-les mitjançant Axios (GET-POST-DELETE).

GET sol·licitud amb Axios:

Creeu un component MyBlog i connecteu-lo al cicle de vida del component DidMount. Importeu l'Axios a la part superior i obteniu les dades amb la sol·licitud Obtén.

Javascript




EUA quantes ciutats

// Filename - App.js> import React from>'react'>;> import axios from>'axios'>;> export>default> class MyList extends React.Component {> >state = {> >blogs: [],> >};> >componentDidMount() {> >axios> >.get(> >`https:>//jsonplaceholder.typicode.com/posts`> >)> >.then((response) =>{> >const posts = response.data;> >this>.setState({ posts });> >});> >}> >render() {> >return> (> >>
    > >{>this>.state.posts.map((post) =>{> >post.title;> >})}> >>
>);> >}> }>

>

>

Aquí estem utilitzant axios.get (URL) per obtenir una promesa que retorna un objecte de resposta. La resposta retornada s'assigna a l'objecte de la publicació. També podem recuperar altra informació com ara el codi d'estat, etc.

Sol·licitud POST amb Axios:

Creeu un nou component AddPost per a les sol·licituds de publicació. Aquesta sol·licitud afegirà una publicació a la llista de publicacions.

Javascript




// Filename - App.js> import React from>'react'>;> import axios from>'axios'>;> export>default> class AddPost extends React.Component {> >state = {> >postTitle:>''>,> >};> >handleChange = (event) =>{> >this>.setState({ postTitle: event.target.value });> >};> >handleSubmit = (event) =>{> >event.preventDefault();> >const post = {> >postName:>this>.state.postName,> >};> >axios> >.post(> >`https:>//jsonplaceholder.typicode.com/posts`,> >{ post }> >)> >.then((res) =>{> >console.log(res);> >console.log(res.data);> >});> >};> >render() {> >return> (> >> >'{this.handleSubmit}'>Nom de la publicació: type='text' name='name' onChange='{this.handleChange}' /> 'submit'>Afegeix); } }>>>

> 

Al codi anterior, hem fet una sol·licitud HTTP Post i hem afegit una nova publicació a la base de dades. L'esdeveniment onChange activa el mètode handleChange() i actualitza la sol·licitud quan la sol·licitud de l'API retorna les dades correctament.

Suprimeix la sol·licitud amb Axios:

Per enviar la sol·licitud d'eliminació al servidor s'utilitza axios.delete. Heu d'especificar dos paràmetres mentre feu aquesta sol·licitud URL i configuració opcional.

axios.delete(url, {   data: { foo: 'bar' },   headers: { 'Authorization': '******' }  });>

Mentre envieu la sol·licitud d'eliminació, haureu d'establir el cos i les capçaleres de la sol·licitud. Utilitzeu config.data per a aquest propòsit. A la sol·licitud POST anterior, modifiqueu el codi tal com es mostra a continuació...

Javascript

llista de matrius en java




handleSubmit = event =>{> >event.preventDefault();> >axios.>delete>(> >`https:>//jsonplaceholder.typicode.com/posts/${this.state.postName}`)> >.then(res =>{> >console.log(res);> >console.log(res.data);> >})> }>

>

>

Objectes de resposta a Axios:

Quan envieu una sol·licitud al servidor, rebeu un objecte de resposta del servidor amb les propietats que s'indiquen a continuació...

  • dades: Rebreu dades del servidor en forma de càrrega útil. Aquestes dades es retornen en forma JSON i es tornen a analitzar en un objecte JavaScript.
  • estat: Obteniu el codi HTTP retornat del servidor.
  • statusText: Missatge d'estat HTTP retornat pel servidor.
  • capçaleres: Totes les capçaleres són enviades pel servidor.
  • config: configuració de sol·licitud original.
  • petició: objecte XMLHttpRequest real.

Objecte d'error:

Obtindreu un objecte d'error si hi ha un problema amb la sol·licitud. La promesa es rebutjarà amb un objecte d'error amb les propietats proporcionades

  • missatge: Text del missatge d'error.
  • resposta: Objecte de resposta (si es rep).
  • petició: Objecte XMLHttpRequest real (quan s'executa en un navegador).
  • config: Configuració de la sol·licitud original.

Característiques de la biblioteca Axios

  • Les dades JSON es transformen automàticament.
  • Transforma les dades de sol·licitud i resposta.
  • Útil per fer sol·licituds HTTP des de Node.js
  • Fa XMLHttpRequests des del navegador.
  • Proporcioneu suport al costat del client per protegir-vos contra XSRF.
  • Admet l'API de promesa.
  • Possibilitat de cancel·lar la sol·licitud.

Mètodes de taquigrafia a Axios:

A continuació es mostren alguns mètodes taquigràfics d'Axios...

  • axios.request(config)
  • axios.head(url[, config])
  • axios.get(url[, config])
  • axios.post(url[, dades[, config]])
  • axios.put(url[, dades[, config]])
  • axios.delete(url[, config])
  • axios.options(url[, config])
  • axios.patch(url[, dades[, config]])

Conclusió

Aquest article explica tot sobre la biblioteca Axios. Hem comentat algunes operacions útils, com ara obtenir les dades, publicar-les, actualitzar-les o suprimir-les a Axios. Un cop comencis a treballar en React, hauràs d'utilitzar aquesta biblioteca per comunicar-te amb el servidor de bases de dades. Per tant, és important fer-ne una pràctica i entendre com funcionen les coses a Axios.