Задать вопрос
Все статьи / VDS / Управление услугой VDS / Использование Axios в React
Найти результаты:
Период:
с:
 
по:
Помощь в поиске

Помощь в поиске

apple banana
Найти записи, которые содержат хотя бы одно из двух слов.

+apple +juice
Найти записи, которые содержат оба слова.

+apple macintosh
Найти записи, которые содержат слово 'apple', но положение записей выше, если они также содержат 'macintosh'.

+apple -macintosh
Найти записи, которые содержат слово 'apple', но не 'macintosh'.

+apple ~macintosh
Найти записи, которые содержат слово 'apple', но если запись также содержит слово 'macintosh', rate it lower than if row does not. Это более "мягкий" чем поиск '+apple -macintosh', для которого наличие 'macintosh' вызывает что записи не будут возвращены вовсе.

+apple +(>turnover <strudel)
Найти записи, которые содержат слова 'apple' и 'turnover', или 'apple' и 'strudel' (в любом порядке), но ранг 'apple turnover' выше чем 'apple strudel'.

apple*
Найти записи, которые содержат такие слова как 'apple', 'apples', 'applesauce', или 'applet'.

"some words"
Найти записи, которые содержат точную фразу 'some words' (например записи содержащие 'some words of wisdom', но не "some noise words").

Использование Axios в React

В этой статье мы рассмотрим, что такое Axios и как вы можете использовать его в React. 

Axios – что это

Axios – это библиотека JavaScript, которая используется для выполнения HTTP-запросов из браузера или среды выполнения JavaScript (например, Node.js). Она обеспечивает простой и удобный способ взаимодействия с веб-серверами и получения данных с удаленных ресурсов. 

Axios предоставляет API для создания и отправки HTTP-запросов, обработки ответов и управления запросами.

Функции Axios

  • Поддержка множества платформ. Axios используют как в браузере, так и в среде Node.js. Это позволяет выполнять HTTP-запросы как на клиентской стороне (например, в браузере), так и на серверной стороне (например, при создании сервера).
  • Поддержка промисов. Axios возвращает объекты Promise, что делает управление асинхронными запросами удобным. Благодаря этому можно использовать синтаксис async/await для управления асинхронным кодом.
  • Обработка запросов и ответов. Axios предоставляет множество встроенных функций для обработки запросов и ответов – например, интерцепторы, которые позволяют вам модифицировать запросы и ответы перед отправкой или после получения.
  • Поддержка отмены запросов. Axios позволяет отменять запросы, что может быть полезно, если пользователь внезапно переходит на другую страницу или прерывает запрос.
  • Установка заголовков. Вы можете устанавливать HTTP-заголовки (Content-Type или Authorization). Так вы сможете отправлять запросы с необходимой конфигурацией.
  • Манипуляции с данными. Axios предоставляет возможность отправлять данные в различных форматах: JSON, формы, текст и другие.
  • Обработка ошибок. С Axios можно легко обрабатывать различные виды ошибок, которые возникают во время отправки запросов или получения ответов.

Как добавить Axios в проект React

Шаг 1. Выбор сервера

Ищете надежное и гибкое решение для хранения данных? SpaceWeb предлагает аренду выделенного сервера, который будет адаптирован под ваши уникальные задачи. Наши серверы находятся в дата-центрах на территории России, обеспечивая отказоустойчивость и высокую доступность. 

С нами вы получите root-доступ, возможность создать сервер по вашим требованиям, а также круглосуточную техническую поддержку. SpaceWeb — это более 20 лет опыта и оптимальные цены. 

Доверьтесь нам, и мы поможем вам выбрать и настроить идеальное решение для ваших потребностей.

Примеры различных выделенных серверов SpaceWeb

Шаг 2. Добавление Axios в React

Для добавления Axios в ваш React-проект вы можете воспользоваться менеджером пакетов npm или Yarn.

npm:

  1. Откройте терминал и перейдите в каталог вашего проекта:

cd [путь/к/вашему/проекту]

  1. Для установки Axios выполните следующую команду:

npm install axios

Yarn:

  1. Откройте терминал и перейдите в каталог вашего проекта:

cd [путь/к/вашему/проекту]

  1. Для установки Axios выполните команду:

yarn add axios

Когда установка завершится, Axios c React станет доступен в вашем проекте. 

Как настроить Axios с помощью React

Как сделать запрос GET

GET-запрос используется для получения информации с сервера. Он инициирует запрос к указанному ресурсу и получает данные, которые находятся на этом ресурсе. 

Особенность GET-запросов – это возможность их кеширования и сохранения в истории браузера. Однако из-за ограничений на максимальную длину URL, они могут быть неэффективными для передачи больших объемов данных.

Давайте выполним запрос для получения данных о конкретных постах. Если посмотреть на конечную точку (endpoint), то вы запрашиваете первый пост из конечной точки `/posts`:

import axios from "axios";
import React from "react";
const baseURL = "https://jsonplaceholder.typicode.com/posts/1";
export default function App() {
  const [post, setPost] = React.useState(null);
React.useEffect(() => {
 axios.get(baseURL).then((response) => {
setPost(response.data);
 });
  }, []);
if (!post) return null;
return (
 <div>
<h1>{post.title}</h1>
<p>{post.body}</p>
 </div>
  );
}

Для выполнения этого запроса: 

  • При монтировании компонента используется хук `useEffect`. 
  • Происходит импорт библиотеки Axios, использование метода GET.
  • Используется колбека `.then()`, чтобы получить все данные из ответа.

Ответ возвращается в виде объекта. Данные (в нашем случае пост со свойствами id, title и body) помещаются в состояние `post`, которое затем отображается в компоненте.

Как сделать запрос POST

POST-запрос используется для отправки данных на сервер. Он предназначен для создания новых ресурсов или выполнения каких-либо других действий на сервере, которые изменяют его состояние. 

Согласно API, он должен выполняться в конечной точке `/posts`. Если посмотреть на код ниже, вы увидите, что там есть кнопка для создания нового поста:

import axios from "axios";
import React from "react";
const baseURL = "https://jsonplaceholder.typicode.com/posts";
export default function App() {
  const [post, setPost] = React.useState(null);
  React.useEffect(() => {
 axios.get(`${baseURL}/1`).then((response) => {
setPost(response.data);
 });
  }, []);
  function createPost() {
 axios
.post(baseURL, {
  title: "Привет!",
  body: "Это новый пост."
})
.then((response) => {
  setPost(response.data);
});
  }
  if (!post) return "Нет поста!"
  return (
 <div>
<h1>{post.title}</h1>
<p>{post.body}</p>
<button onClick={createPost}>Создать пост</button>
 </div>
  );
}

Когда вы нажимаете на кнопку, вызывается функция `createPost`.

Для выполнения POST-запроса с помощью Axios: 

  • Используется метод `.post()`. 
  • Вторым аргументом передается объект, который определяет, каким должен быть новый пост.
  • Снова используется колбек `.then()`, чтобы получить данные ответа и заменить первый полученный пост новым постом, который был запрошен.

Процесс очень похож на аналогичный с GET, но новый ресурс, который вы хотите создать, указывается вторым аргументом после конечной точки API.

Как сделать запрос PUT

PUT-запрос – это один из методов HTTP-протокола, который используется для обновления существующего ресурса на сервере. 

Этот метод позволяет клиенту отправить данные на сервер, чтобы обновить или заменить информацию о существующем ресурсе согласно указанной конечной точке (URL). PUT-запрос изменяет состояние сервера на основе предоставленных данных и URL.

Для выполнения PUT-запроса и обновления существующего ресурса используется метод PUT. 

Пример:

import axios from "axios";
import React from "react";
const baseURL = "https://jsonplaceholder.typicode.com/posts";
export default function App() {
  const [post, setPost] = React.useState(null);
  React.useEffect(() => {
 axios.get(`${baseURL}/1`).then((response) => {
setPost(response.data);
 });
  }, []);
  function updatePost() {
 axios
.put(`${baseURL}/1`, {
  title: "Привет!",
  body: "Это обновленный пост."
})
.then((response) => {
  setPost(response.data);
});
  }
  if (!post) return "Нет поста!"
  return (
 <div>
<h1>{post.title}</h1>
<p>{post.body}</p>
<button onClick={updatePost}>Обновить пост</button>
 </div>
  );
}

В этом коде: 

  • Используется метод PUT из библиотеки Axios. Аналогично POST включаются свойства, которые вы хотите обновить в существующем ресурсе. В данном случае обновляется пост с id равным 1, как указано в строке `axios.put(`${baseURL}/1`, { ... })`.
  •  Затем с использованием колбека `.then()`, JSX компонента пополняется новыми данными, которые возвращаются в ответе на PUT-запрос.

Таким образом, PUT-запрос используется для обновления существующего ресурса на сервере. Он отправляет данные на сервер, которые заменяют данные уже существующего ресурса.

Как сделать запрос DELETE

DELETE-запрос используется для удаления ресурса с сервера. Этот метод позволяет клиенту отправить запрос на сервер с указанием ресурса, который требуется удалить. 

В качестве примера давайте рассмотрим удаление первого поста. 

Важно! Обратите внимание, что для выполнения этого запроса вам не нужно никаких данных второго аргумента. 

import axios from "axios";
import React from "react";
const baseURL = "https://jsonplaceholder.typicode.com/posts";
export default function App() {
  const [post, setPost] = React.useState(null);
  React.useEffect(() => {
 axios.get(`${baseURL}/1`).then((response) => {
setPost(response.data);
 });
  }, []);
  function deletePost() {
 axios
.delete(`${baseURL}/1`)
.then(() => {
  alert("Пост удален!");
  setPost(null);
});
  }
  if (!post) return "Нет поста!"
  return (
 <div>
<h1>{post.title}</h1>
<p>{post.body}</p>
<button onClick={deletePost}>Удалить пост</button>
 </div>
  );
}

После выполнения этого запроса пользователь получит оповещение о том, что пост был удален и его больше нет. Затем данные поста очищаются и устанавливается их исходное значение – `null`.

Как создать базовый экземпляр с помощью Axios

В предыдущих примерах видно, что существует базовый URL, который вы используете в качестве части конечной точки для запросов Axios – «https://jsonplaceholder.typicode.com/posts». 

Однако становится немного утомительно писать этот базовый URL для каждого запроса. Вы можете сделать так, чтобы Axios запомнил, какой базовый URL вы используете. 

Если создать экземпляр с помощью метода `.create()`,  Axios будет помнить этот базовый URL, а также другие значения, которые вы можете указать для каждого запроса:

import axios from "axios";
import React from "react";
const client = axios.create({
  baseURL: "https://jsonplaceholder.typicode.com/posts" 
});
export default function App() {
  const [post, setPost] = React.useState(null);
  React.useEffect(() => {
 client.get("/1").then((response) => {
setPost(response.data);
 });
  }, []);
  function deletePost() {
 client
.delete("/1")
.then(() => {
  alert("Пост удален!");
  setPost(null)
});
  }
  if (!post) return "Нет поста!"
  return (
 <div>
<h1>{post.title}</h1>
<p>{post.body}</p>
<button onClick={deletePost}>Удалить пост</button>
 </div>
  );
}

В будущем вы можете использовать все те же методы, что и раньше, но вам больше не нужно включать `baseURL` в качестве первого аргумента. Это упростит и улучшит читаемость вашего кода.

Как обработать ошибки

Что делать, если при выполнении запроса возникает ошибка? Например, при передаче неверных данных, запросе несуществующей конечной точки или ошибке сети, пропишите:

import axios from "axios";
import React from "react";
const baseURL = "https://jsonplaceholder.typicode.com/posts";
export default function App() {
  const [post, setPost] = React.useState(null);
  const [error, setError] = React.useState(null);
  React.useEffect(() => {
 // Неверный URL вызовет ошибку 404
 axios.get(`${baseURL}/asdf`).then((response) => {
setPost(response.data);
 }).catch(error => {
setError(error);
 });
  }, []);
  if (error) return `Ошибка: ${Сообщение об ошибке.}`;
  if (!post) return "Нет поста!"
  return (
 <div>
<h1>{post.title}</h1>
<p>{post.body}</p>
 </div>
  );
}

В этом случае, вместо выполнения колбека `.then()`, Axios вызовет ошибку и выполнит функцию `.catch()`.

Таким образом, данные об ошибке используются для информирования пользователей об ошибке. При выполнении этого кода вы увидите текст «Error: Request failed with status code 404» («Ошибка: Запрос завершился с кодом состояния 404»).

Предыдущая статья
Инструкция по управлению DBAAS
Следующая статья
Краткое руководство по командной строке Linux