관리 메뉴

bright jazz music

2. React에서 axios 사용하기(POST) 본문

Framework/ReactJs

2. React에서 axios 사용하기(POST)

bright jazz music 2023. 5. 21. 19:38

React에서 axios를 사용하여 POST 요청을 보내는 방법을 알려드리겠습니다.

먼저, `axios` 패키지를 설치해야 합니다. 프로젝트 디렉토리에서 다음 명령을 실행하여 패키지를 설치합니다.

npm install axios


설치가 완료되었다면, POST 요청을 보내는 React 컴포넌트에서 `axios`를 import합니다.

import axios from 'axios';



그리고 POST 요청을 보낼 함수를 만듭니다. 함수에서 `axios.post()`를 사용하여 요청을 보냅니다. 다음은 간단한 예시입니다.

import React from 'react';
import axios from 'axios';

class MyComponent extends React.Component {
  constructor(props) {
    super(props);
    this.state = {
      data: ''
    };
  }

  sendData = () => {
    const data = { name: 'John', age: 25 }; // 보낼 데이터 객체
    axios.post('https://example.com/api', data)
      .then(response => {
        console.log(response.data); // 성공적으로 요청을 보낸 후 받은 응답 데이터
        this.setState({ data: response.data });
      })
      .catch(error => {
        console.error(error); // 요청 중에 발생한 에러
      });
  }

  render() {
    return (
      <div>
        <button onClick={this.sendData}>데이터 보내기</button>
        <p>받은 데이터: {this.state.data}</p>
      </div>
    );
  }
}

export default MyComponent;



위 예시에서 `sendData` 함수는 버튼을 클릭할 때 실행되며, `axios.post()`를 사용하여 'https://example.com/api'로 POST 요청을 보냅니다. 요청이 성공하면 `.then()` 블록이 실행되며, 응답 데이터가 콘솔에 출력되고 `data` 상태가 업데이트됩니다. 요청 중에 에러가 발생하면 `.catch()` 블록이 실행되며, 에러가 콘솔에 출력됩니다.

이것은 간단한 예시이며, 실제로는 요청을 보낼 URL과 데이터를 적절하게 변경해야 합니다. 또한, 이 코드는 클래스형 컴포넌트를 기준으로 작성되었습니다. 함수형 컴포넌트에서는 `useState` 훅을 사용하여 상태를 관리할 수 있습니다.

 

 

 

===

 

함수형 예시



그리고 POST 요청을 보낼 함수를 만듭니다. 함수 안에서 `axios.post()`를 사용하여 요청을 보냅니다. 다음은 간단한 예시입니다.


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

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

  const sendData = () => {
    const requestData = { name: 'John', age: 25 }; // 보낼 데이터 객체
    axios.post('https://example.com/api', requestData)
      .then(response => {
        console.log(response.data); // 성공적으로 요청을 보낸 후 받은 응답 데이터
        setData(response.data);
      })
      .catch(error => {
        console.error(error); // 요청 중에 발생한 에러
      });
  }

  return (
    <div>
      <button onClick={sendData}>데이터 보내기</button>
      <p>받은 데이터: {data}</p>
    </div>
  );
}

export default MyComponent;


위 예시에서 `MyComponent`는 함수형 컴포넌트로 작성되었습니다. `useState` 훅을 사용하여 `data` 상태와 `setData` 함수를 정의합니다. `sendData` 함수는 버튼을 클릭할 때 실행되며, `axios.post()`를 사용하여 'https://example.com/api'로 POST 요청을 보냅니다. 요청이 성공하면 `.then()` 블록이 실행되며, 응답 데이터가 콘솔에 출력되고 `setData`를 통해 `data` 상태가 업데이트됩니다. 요청 중에 에러가 발생하면 `.catch()` 블록이 실행되며, 에러가 콘솔에 출력됩니다.

이 예시는 함수형 컴포넌트에서 `axios`를 사용하는 방법을 보여주기 위한 간단한 예시입니다. 실제로는 요청을 보낼 URL과 데이터를 적절하게 변경해야 합니다.

Comments