상수 데이터
- 반복적인 UI를 하드코딩하지 않기 위해 데이터를 만들어놓고 Array.map() 메서드를 이용하여 UI를 표현
import React from 'react';
import { Link, useNavigate } from './react-router-dom';
const GNB_LIST = [
{
id: 1,
text: "홈",
path: "/url_1"
},
{
id: 2,
text: "카테고리",
path: "/url_2"
},
{
id: 3,
text: "마이페이지",
path: "/url_3"
},
...
]
const Gnb - () => {
return (
<>
<ul>
{GNB_LIST.map(menu => (
<li key={menu.id}>
<Link to={menu.path}>
{menu.text}
</Link>
</li>
))}
</ul>
</>
)
}
export default Gnb;
Mock Data
- 백엔드 API가 완전하지 않아도 프론트엔드 개발은 가능
- 그것을 가능케 하는 것인 Mock Data, 즉 모조 데이터
- 이 데이터는 실제 서버에서 주는 데이터의 형식과 동일해야 하기 때문에 JSON(JavaScript Object Notation) 형식으로 생성할 필요가 있음
- 이 데이터는 로컬 서버에서 받아와야 하므로, public 폴더 내에서 관리해야 함
// movieMockData.json
// key 값을 "" 안에 담아야 한다는 것만 주의하면 크게 어려울 것이 없는 데이터 구조입니다.
[
{
"id": 1,
"name": "대부",
"genre": "스릴러",
"price": 15000,
},
{
"id": 2,
"name": "존 윅",
"genre": "액션",
"price": 10000,
},
...
]
Fetch() 메서드 (Feat. Mock Data)
- fetch() 메서드는 통신에 사용하는 메서드이며, 클라이언트가 서버에 요청하고 응답받을 수 있게 되어 있음
useEffect(()=>{
fetch('./data/movieMockData.json'.{
method: 'GET'
})
.then(res => res.json())
.then(data => {
setMovieList(data);
})
}, [])
Fetch() 메서드
fetch("API 주소", {
method: "POST",
headers: {
"Content-Type": "application/json;charset=utf-8",
},
body: JSON.stringify({
title: "test 1",
content: "test 2",
}),
})
.then((res) => {
if (res.ok === true) {
return res.json();
}
})
.then((data) => {
if (data === "LOGIN SUCCESS") {
...
} else if (data === "LOGIN FAILED") {
...
} else {
...
}
});
열심히 하세요. 두 번 하세요.