Stack/React
[React] json-server을 이용하여 데이터 받아오기
7ingout
2022. 7. 15. 09:35
2022.07.14 - [Coding/React] - [React] Redux Middleware - 리덕스 미들웨어
[React] Redux Middleware - 리덕스 미들웨어
리덕스 미들웨어 1. 미들웨어 만들기 2. thunk 미들웨어 사용하기 dispatch => 미들웨어 => reducer const middleware = store => next => action => { } function middleware(store) { return function(next){ ..
7ingout.tistory.com
npm install axios
npx json-server ./data.json --port 4000
api/posts.js
// n 밀리세컨드동안 기다리는 프로미스를 만들어주는 함수
import axios from "axios";
// const sleep = n => new Promise(resolve => setTimeout(resolve, n));
//
// const posts = [
// {
// id: 1,
// title: "리덕스 미들웨어를 공부합시다.",
// body: "리덕스 미들웨어를 만들어 봅시다."
// },
// {
// id: 2,
// title: "redux-thunk를 사용해봅시다.",
// body: "redux-thunk를 사용해서 비동기 작업을 처리해봅시다."
// },
// {
// id: 3,
// title: "redux-saga도 공부해봅시다.",
// body: "나중엔 redux-saga를 사용해서 비동기 작업을 처리해보세요."
// }
// ]
// 포스트 목록을 가져오는 비동기 함수
export const getPosts = async () => {
// await sleep(500); // 0.5초 쉬기
const response = await axios.get("http://localhost:4000/posts");
return response.data;
}
// ID로 포스트를 조회하는 비동기 함수
export const getPostById = async id => {
// await sleep(500); // 0.5초 쉬기
const response = await axios.get("http://localhost:4000/posts");
return response.data.find(post => post.id === id);
// return posts.find(post => post.id === id); // id로 찾아서 반환
}
data.json
{
"posts" : [
{
"id": 1,
"title": "리덕스 미들웨어를 공부합시다.",
"body": "리덕스 미들웨어를 만들어 봅시다."
},
{
"id": 2,
"title": "redux-thunk를 사용해봅시다.",
"body": "redux-thunk를 사용해서 비동기 작업을 처리해봅시다."
},
{
"id": 3,
"title": "redux-saga도 공부해봅시다.",
"body": "나중엔 redux-saga를 사용해서 비동기 작업을 처리해보세요."
}
]
}