일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- meatadata
- generic
- reactnative
- Next.js
- set
- async
- 코드푸시
- supabase auth
- javascript
- Spring
- supabase authentication
- react
- 이진탐색
- 페이지네이션
- array
- map
- Filter
- 타입스크립트
- 스크롤이벤트
- 상속
- 글또10기x코드트리
- supabase 페이지네이션
- codepush
- TS
- extends
- interface
- xlsx-js-style
- app.post
- code-push-standalone
- 슬라이딩윈도우
- Today
- Total
rhanziy
React - axios 라이브러리로 ajax요청 본문
서버 : 유저가 요청한 데이터를 보내주는 프로그램.
get : 서버에서 데이터를 가져올 때
post : 데이터를 서버로 보낼 때
브라우저 주소창에 GET, POST 날리면 브라우저가 새로고침되는 단점이 있다.
ajax란?
서버에 GET, POST 요청 시 새로고침 없이 데이터를 통신할 수 있게 도와주는 간단한 브라우저 기능.
- 브라우저, Node.js를 위한 Promise API를 활용하는 HTTP 비동기 통신 라이브러리이다.
사용법은 3가지가 있는데,
1. XMLHttpRequest 라는 옛날 문법사용
2. 자바스크립트 fetch()
3. axios 외부라이브러리
리액트에서 서버와 ajax 통신할 때 axios 라이브러리 설치&사용 법
// 터미널 오픈 후 install
npm install axios
// HTTP request가 필요한 컴포넌트에 임포트
import axios from 'axios';
이러면 준비 끝
// axios.get('/url').then().catch()
axios.get('https://codingapple1.github.io/shop/data.json')
.then((data)=>{
// 가져온 data 처리 코드
}).catch(()=>{
// data를 불러오지 못했을 때 오류 처리 코드
})
사용 문법이다. 보통 then이나 catch다음 콜백함수로 처리하는 코드 작성.
동시에 ajax 요청 여러개 날리려면 아래와 같이!
Promise.all([ axios.get('/url'), axios.get('/url') ])
.then()
.catch()
post는 axios.post('/url', { name : kim } ) 처럼 서버 url 입력하고 보낼 데이터 작성하면 됨.
axios를 왜 사용하냐!?
원래 서버와는 문자자료만 주고받을 수 있잖아요.
근데 "{"name" : "kim"}" 이렇게 JSON형식으로 변환해서
object나 array 주고 받으면 나중에 데이터 정리하기 편하다.
서버에서 데이터를 GET해올 때
fetch()를 사용하게되면 JSON을 변환해주는 과정이 추가로 필요함. ex) fetch('/url').then(data => data.json())
axios라이브러리는 자동으로 json형식을 array나 object로 변환해준다.
'React' 카테고리의 다른 글
React - Redux toolkit 에서 state 변경하기(장바구니 기능) (0) | 2022.12.06 |
---|---|
React - 공유할 state가 많다면? Redux toolkit 라이브러리 (0) | 2022.11.28 |
React - styled components 라이브러리 (0) | 2022.11.22 |
React - 이미지 넣는 방법 3가지 (0) | 2022.11.22 |
리액트 Hooks - useAxios (0) | 2022.05.24 |