상수 데이터는 UI 구성에는 필요하지만 동적으로 변하지는 않아서 백엔드 API 등을 통해서 가져올 필요가 없는 정적인 데이터 입니다.
Array.map()
메서드와 조합해서 반복되는 UI를 보다 간결하게 표현할 수 있습니다.import React from 'react';
const Footer = () => {
return (
<footer>
{/* 생략 */}
<ul>
<li>
<a href="https://github.com/terms">Terms</a>
</li>
<li>
<a href="https://github.com/privacy">Privacy</a>
</li>
...
<li>
<a href="https://github.com/about">About</a>
</li>
</ul>
</footer>
);
};
export default Footer;
UPPER_SNAKE_CASE
네이밍 컨밴션에 따라 명명합니다.const FOOTER_INFO_LIST = [
{ id: 1, link: "https://github.com/terms", text: "Terms" },
{ id: 2, link: "https://github.com/privacy", text: "Privacy" },
...
{ id: 11, link: "https://github.com/about", text: "About" },
];
// Footer.js
import React from 'react';
const Footer = () => {
return (
<footer>
{/* 생략 */}
<ul>
{FOOTER_INFO_LIST.map(info => (
<li key={info.id}>
<a href={info.link}>{info.text}</a>
</li>
))}
</ul>
</footer>
);
};
export default Footer;
// Footer.js
import React from 'react';
const Footer = () => {
return (
<footer>
{/* 생략 */}
<ul>
{FOOTER_INFO_LIST.map(info => (
<FooterInfo key={info.id} link={info.link} text={info.text} />
))}
</ul>
</footer>
);
};
export default Footer;
-위 코드 처럼 map 메서드에서 return 하는 JSX를 컴포넌트화하고, props로 넘겨주는 방식으로도 활용할 수 있습니다.
// data.js
export const FOOTER_INFO_LIST = [
{ id: 1, link: "https://github.com/terms", text: "Terms" },
{ id: 2, link: "https://github.com/privacy", text: "Privacy" },
...
{ id: 11, link: "https://github.com/about", text: "About" },
];
// Footer.js
import React from 'react';
import { FOOTER_INFO_LIST } from './data';
const Footer = () => {
return (
<footer>
{/* 생략 */}
<ul>
{FOOTER_INFO_LIST.map(info => (
<li key={info.id}>
<a href={info.link}>{info.text}</a>
</li>
))}
</ul>
</footer>
);
};
export default Footer;