-
[ajax vs axios]React/프로젝트 2022. 1. 25. 19:29
Ajax?
Asynchronous javascript And xml
비동기식 자바스크립트와 xml- javascript 라이브러리 중 하나
- 자바스크립트를 통해 서버에 데이터를 요청하는 것
- 브라우저가 가지고 있는 XMLHttpRequest객체를 이용해서
전체 페이지를 새로 고치지 않고도 페이지의 일부만을 위한 데이터를 로드하는 기법 - ※ 비동기 방식 : 웹 페이지를 리로드하지 않고 데이터를 불러오는 방식
Axios?
브라우저, Node.js를 위한 Promise(es6) API를 활용하는 HTTP비동기 통신 라이브러리- 서버사이드에서는 네이티브 node.js의 http모듈을 사용하고
- 클라이언트(브라우저)에서는 XMLHttpRequest API 객체 사용
- 클라이언트 안에서 요청을 보냄 (axios lib 사용)
- HTTP요청 취소 및 요청과 응답을 JSON형태로 자동 변경
- GET, POST, PUT, DELETE
- get : 주로 데이터를 읽거나 검색하기 위해 서버측에 요청하는 형태
- post : 클라이언트에서 서버로 전송할 때 추가적인 데이터를 body에 포함하여 요청
-
// post 요청 예시 axios.post('/user', { firstName: 'Fred', lastname: 'Flintstone' }) .then(function (response) { console.log(response); }) .catch(function (error) { console.log(error); }); // 여러 동시에 post 요청 function getUserAccount() { return axios.get('/user/12345'); } function getUserPermissions() { return axios.get('/user/12345/permissions'); } Promise.all([getUserAccount(), getUserPermissions()] .then(function (result) { const acct = results[0]; const perm = results[1]; });
- GET, POST, PUT, DELETE
- axios 설치
- client ) npm install axios --save
-
// 활용 예시 import React, { useEffect } from 'react'; import axios from 'axios'; // landingPage.js function LandingPage() { useEffect(() => { axios.get("/api/hello").then((response) => { // ①. 서버(index.js)로 요청 console.log(response.data); // ③. 응답 노출 (콘솔) }); }, []); // index.js app.get("/api/hello", (req, res) => { res.send("hello world!"); // ②. 처리 후 클라이언트로 응답 });
[참고]
'React > 프로젝트' 카테고리의 다른 글
[Proxy Server] (0) 2022.01.25 [cors 이슈] - Proxy 설정 (0) 2022.01.25 [react-router-dom] (0) 2022.01.25 [HOC] - Higher Order Component (0) 2022.01.25 [npm vs npx] (0) 2022.01.24