React no incluye una librería específica para realizar peticiones HTTP. Sin embargo, Axios es una de las bibliotecas más populares para manejar solicitudes HTTP de manera sencilla y eficiente.
Primero, necesitamos instalar Axios en el proyecto:
Con npm:
npm install axios Con Yarn:
yarn add axios Para empezar, importa Axios en tu componente o archivo donde lo necesites:
import axios from 'axios'; GETA continuación, veamos cómo realizar una solicitud GET:
import { useEffect, useState } from 'react';
import axios from 'axios';
function App() {
const [data, setData] = useState([]);
const [error, setError] = useState(null);
useEffect(() => {
axios.get('https://jsonplaceholder.typicode.com/posts')
.then((response) => {
setData(response.data);
})
.catch((error) => {
setError(error.message);
});
}, []);
if (error) return <p>Error: {error}</p>;
return (
<div>
<h1>Posts</h1>
<ul>
{data.map(post => (
<li key={post.id}>{post.title}</li>
))}
</ul>
</div>
);
}
export default App; axios.get: Realiza la solicitud GET a la URL proporcionada.then: Maneja la respuesta y actualiza el estado con los datos obtenidos.catch: Captura y maneja cualquier error en la solicitud.POSTPuedes usar Axios para enviar datos con una solicitud POST:
import { useState } from 'react';
import axios from 'axios';
function App() {
const [name, setName] = useState("");
const [response, setResponse] = useState(null);
const handleSubmit = (e) => {
e.preventDefault();
axios.post('https://jsonplaceholder.typicode.com/users', { name })
.then((res) => {
setResponse(res.data);
})
.catch((error) => {
console.error(error.message);
});
};
return (
<div>
<form onSubmit={handleSubmit}>
<input
type="text"
value={name}
onChange={(e) => setName(e.target.value)}
placeholder="Nombre"
/>
<button type="submit">Enviar</button>
</form>
{response && <p>Usuario creado: {JSON.stringify(response)}</p>}
</div>
);
}
export default App; axios.post: Envía datos al servidor como un objeto JSON.{ name }.Puedes configurar una instancia de Axios para reutilizarla en todo tu proyecto:
import axios from 'axios';
const api = axios.create({
baseURL: 'https://jsonplaceholder.typicode.com',
timeout: 1000,
headers: { 'Authorization': 'Bearer TOKEN' }
});
export default api; Luego, puedes usar esta instancia configurada en tus componentes:
import { useEffect, useState } from 'react';
import api from './api';
function App() {
const [users, setUsers] = useState([]);
useEffect(() => {
api.get('/users')
.then((response) => {
setUsers(response.data);
})
.catch((error) => {
console.error(error.message);
});
}, []);
return (
<div>
<h1>Usuarios</h1>
<ul>
{users.map(user => (
<li key={user.id}>{user.name}</li>
))}
</ul>
</div>
);
}
export default App; axios.create: Crea una instancia con configuraciones predefinidas, como la URL base, tiempo de espera y encabezados.api se usa en cualquier parte del proyecto para realizar solicitudes.La documentación completa de Axios está disponible en su web oficial. Aquí puedes explorar funcionalidades más avanzadas como interceptores, cancelación de solicitudes y manejo de errores.