Что это такое
Axios — библиотека для HTTP-запросов из браузера и Node.js. Она появилась еще до того, как `fetch` стал привычным стандартом, и до сих пор остается удобной, когда запросы нужно не просто отправлять, а централизованно настраивать.
Библиотека работает с промисами, умеет создавать отдельные экземпляры клиента, поддерживает перехватчики запросов и ответов, отмену через AbortController, преобразование данных, загрузку файлов, прогресс и подробную настройку заголовков.
Как появился и почему прижился
В больших JavaScript-приложениях HTTP-запросы быстро превращаются в повторяющийся код: базовый адрес, токены, обработка ошибок, тайм-ауты, повторяющиеся заголовки. Axios стал популярным потому, что дал удобную оболочку вокруг этой рутины.
Даже с появлением `fetch` у Axios осталась ниша. Он дает единый API для браузера и Node.js, знакомую структуру ответа, перехватчики и много готовых решений, которые команды уже используют годами.
Что лежит внутри
Репозиторий содержит исходный код клиента, адаптеры, типы, тесты, документацию по настройкам запросов, обработке ошибок, отмене, сериализации форм и HTTP/2.
Экземпляр клиента с перехватчиком
Пример показывает частый сценарий: один клиент хранит базовый адрес, а перехватчик добавляет заголовок перед каждым запросом.
import axios from "axios";
const api = axios.create({
baseURL: "https://api.example.com",
timeout: 5000
});
api.interceptors.request.use((config) => {
config.headers.Authorization = `Bearer ${localStorage.getItem("token")}`;
return config;
});
const { data } = await api.get("/profile");
Где полезен
Axios полезен в приложениях, где много запросов и нужно единое поведение: авторизация, обработка ошибок, повторная отправка, ограничение времени ожидания, загрузка файлов, работа с формами.
Если приложение делает один простой GET-запрос, стандартного `fetch` достаточно. Но когда запросы становятся частью архитектуры приложения, отдельный клиент с настройками часто чище.
Сильные стороны и ограничения
Сильная сторона — зрелый API и предсказуемая обвязка HTTP. Команды получают один способ описывать запросы и ответы в разных окружениях.
Ограничение — это дополнительная зависимость поверх платформы. В новых проектах стоит осознанно сравнить Axios с `fetch`: иногда библиотека оправдана, иногда стандартного API уже хватает.