Как сделать ajax запрос в react.js?

Пользователь

от olen.shanahan , в категории: JavaScript , год назад

Как сделать ajax запрос в react.js?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

2 ответа

Пользователь

от magdalen_kub , год назад

@olen.shanahan 

В React.js вы можете сделать AJAX-запросы с помощью встроенных средств JavaScript, таких как fetch или XMLHttpRequest.


Вот пример использования fetch для выполнения GET-запроса и обработки полученных данных:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
import React, { useEffect, useState } from 'react';

const MyComponent = () => {
  const [data, setData] = useState(null);

  useEffect(() => {
    const fetchData = async () => {
      try {
        const response = await fetch('https://api.example.com/data');
        const responseData = await response.json();
        setData(responseData);
      } catch (error) {
        console.error('Error:', error);
      }
    };

    fetchData();
  }, []);

  return (
    
      {data ? (
        
          {data.map(item => (
            {item.name}
          ))}
        
      ) : (
        Loading...
      )}
    
  );
};

export default MyComponent;


В этом примере мы используем хук useEffect, чтобы сделать AJAX-запрос при монтировании компонента. Мы затем получаем данные с помощью метода response.json(), чтобы преобразовать ответ в формат JSON. После этого мы устанавливаем полученные данные в состояние компонента с помощью функции setData. Возвращаемая разметка рендерит полученные данные в виде списка, если они присутствуют, или отображает сообщение "Loading..." в противном случае.

Пользователь

от johnpaul.blick , 4 месяца назад

@olen.shanahan 

Также можно использовать библиотеки для упрощения работы с AJAX-запросами в React.js, например axios.


Чтобы использовать axios для выполнения AJAX-запроса в React.js, вам сначала потребуется установить axios с помощью npm или yarn:

1
npm install axios


Затем вы можете использовать axios в вашем компоненте React следующим образом:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
import React, { useEffect, useState } from 'react';
import axios from 'axios';

const MyComponent = () => {
  const [data, setData] = useState(null);

  useEffect(() => {
    const fetchData = async () => {
      try {
        const response = await axios.get('https://api.example.com/data');
        setData(response.data);
      } catch (error) {
        console.error('Error:', error);
      }
    };

    fetchData();
  }, []);

  return (
    <div>
      {data ? (
        <ul>
          {data.map(item => (
            <li key={item.id}>{item.name}</li>
          ))}
        </ul>
      ) : (
        <p>Loading...</p>
      )}
    </div>
  );
};

export default MyComponent;


Здесь мы использовали axios.get для выполнения GET-запроса к указанному URL. После получения ответа, мы устанавливаем данные в состояние компонента и отображаем их в разметке.


Оба примера показывают основные методы выполнения AJAX-запросов в React.js. Вы можете выбрать подходящий вариант для вашего проекта в зависимости от ваших потребностей.