API в React

Отправка GET-запросов

Для отправки GET-запросов и получения данных из внешнего API в React, мы можем использовать функцию fetch или библиотеку, такую как Axios или Fetch API. Давайте рассмотрим пример использования Axios:

JSX
import React, { useEffect, useState } from 'react';
import axios from 'axios';

function DataFetching() {
  const [data, setData] = useState(null);

  useEffect(() => {
    axios.get('https://api.example.com/data')
      .then(response => {
        setData(response.data);
      })
      .catch(error => {
        console.error(error);
      });
  }, []);

  if (!data) {
    return <div>Loading...</div>;
  }

  return (
    <div>
      <h1>Data from API:</h1>
      <pre>{JSON.stringify(data, null, 2)}</pre>
    </div>
  );
}

В этом примере мы использовали хук useEffect для выполнения GET-запроса к API при монтировании компонента. Мы используем библиотеку Axios для отправки запроса и получения данных. Полученные данные сохраняются в состоянии с помощью хука useState, и затем они отображаются на странице.

Отправка POST-запросов

Для отправки POST-запросов и отправки данных на сервер из React-приложения мы также можем использовать функцию fetch, Axios или другие библиотеки. Вот пример использования функции fetch:

JSX
import React, { useState } from 'react';

function DataPosting() {
  const [data, setData] = useState('');
  const [response, setResponse] = useState('');

  const handleSubmit = async e => {
    e.preventDefault();

    try {
      const response = await fetch('https://api.example.com/data', {
        method: 'POST',
        headers: {
          'Content-Type': 'application/json',
        },
        body: JSON.stringify({ data }),
      });

      const result = await response.json();
      setResponse(result);
    } catch (error) {
      console.error(error);
    }
  };

  return (
    <div>
      <h1>Send Data to API:</h1>
      <form onSubmit={handleSubmit}>
        <input
          type="text"
          value={data}
          onChange={e => setData(e.target.value)}
        />
        <button type="submit">Submit</button>
      </form>
      {response && (
        <div>
          <h2>Response:</h2>
          <pre>{JSON.stringify(response, null, 2)}</pre>
        </div>
      )}
    </div>
  );
}

В этом примере мы создали форму, в которой пользователь может ввести данные. При отправке формы вызывается обработчик handleSubmit, который отправляет POST-запрос на сервер с помощью функции fetch. После получения ответа, результат отображается на странице.

Заключение

В этой статье мы рассмотрели, как взаимодействовать с внешними API и интегрировать их в React-приложения для получения и отправки данных. Вы можете использовать функцию fetch, Axios или другие библиотеки для работы с API. Знание этих техник поможет вам создавать более динамические и интерактивные приложения на React.


Опубликовано

в

от

Log4js

Log4js в JavaScript

Руководство по Log4js в JavaScript: от установки до продвинутых тем. Исследуйте логирование с уровнями, аппендерами и настройками.

React

Сторонние компоненты в React

Узнайте, как устанавливать и интегрировать сторонние компоненты в React-приложения с помощью npm, расширяя функциональность и повышая производительность.

СSS 3

Изменение размеров элементов CSS

Узнайте, как изменять размеры элементов на веб-странице с помощью CSS.

СSS 3

Как создать анимированные переходы CSS

Изучите возможности CSS для создания плавных и красивых анимированных переходов между состояниями элементов.

React

Тестирование React-приложений

Узнайте, как писать юнит-тесты и выполнять интеграционное тестирование в React-приложениях для обеспечения стабильности и надежности.

СSS 3

Псевдоэлементы CSS

Изучите псевдоэлементы в CSS и узнайте, как добавить стильные декоративные элементы на страницу.

HTML 5

Веб-сокеты в HTML

Веб-сокеты в HTML: Узнайте, как использовать веб-сокеты в HTML для обмена данными между клиентом и сервером в режиме реального времени.

СSS 3

Модальное окно СSS

Изучите способы создания модальных окон на веб-странице с использованием CSS и JavaScript.