UI구성에 필요하지만 동적으로 변하지 않아서 백엔드 API등 을 통해 가져올 필요가 없는 데이터들이다. 이런 데이터들은 상수 데이터로 만들어 UI를 구성할 수 있다. 즉 상수 데이터란 정적인 데이터를 의미한다.
첫번째로는 하드코딩으로 만들게 되면 코드가 길어져 가독성에 좋지 않고, 수정 이 필요할 시 해당 부분을 찾기 힘들어 유지보수가 어렵다.
상수데이터를 활용하면 Array.map()
메서드와 조합해서 반복되는 UI를 보다 간결하게 표현할 수 있다. 상수데이터 부분만 수정해주면 되기 때문에 유지보수 또한 용이하다.
map메서드를 활용해 동일한 UI를 반복할 것이기 때문에 상수데이터의 형태는 배열로 만든다.
export const ASIDE_LIST = [
{ id: 1, title: '소개' },
{ id: 2, title: '도움말' },
{ id: 3, title: '홍보 센터' },
];
function AsideList() {
return (
<div id="listWrap">
{ASIDE_LIST.map(info => {
return (
<>
<div id="list" key={info.id}>
{info.title}
</div>
<span id="dot">⋅</span>
</>
);
})}
</div>
);
}
.js
파일로 분리해서 사용할 수 있다.UI구성에 필요한 백엔드 API가 완성되지 않은 상황에서 데이터가 들어올 상황을 대비해 의도한대로 UI가 구현되는지 Mock데이터를 입력해 확인 할 수 있다.
즉, 실제로 API에서 받아온 데이터가 아닌 프론트엔드 개발자가 필요에 의해 샘플로 만든 데이터이다.
commentLisk.json
[
{
"id": 1,
"commentUserImg": "/images/jinkyung/comment_user_img_1.jpeg",
"commentName": "hu_zzi",
"likeCount": 50
},
{
"id": 2,
"commentUserImg": "/images/jinkyung/comment_user_img_2.jpeg",
"commentName": "jaerong_e",
"likeCount": 70
}
]
function Feeds() {
//데이터 받아오기
useEffect(() => {
fetch('/data/userContentList.json', {
method: 'GET',
})
.then(res => res.json())
.then(data => {
setContent(data);
});
});
fetch
함수는 첫번째 인자로 http요청을 보낼 때 API주소 / 두번째 인자로 요청을 보낼때의 옵션들을 객체로 받는다.json
파일을 저장해 둔 주소를 API주소로, 그리고 데이터를 가져오기 위한 GET
method를 활용해 요청을 보낸다.useEffect
훅을 활용하여 컴포넌트가 렌더링 된 이후 데이터를 요청한다.