데이터 타입이 리스트(일반적으로 Array 객체를 말함)인 경우, 반복(Loop) 처리를 통해 JSX 코드를 동적으로 생성 할 수 있습니다. 아래 예시는 Array 객체의 map 메서드를 사용해 배열을 순환 처리하여 React 요소를 만들어 낸 후, 컨테이너 역할의 React 요소의 자식 요소로 설정합니다.
Copy const reactFamily = [
{ id : 'go1qhwkay' , name : 'React' } ,
{ id : 'jdkw8wjbk' , name : 'Redux' } ,
{ id : 'ekjkfdcj4o' , name : 'React Router' } ,
]
const reactFamilyJSX = (
< ul className = "react-family" >
{ reactFamily .map (member => (
< li className = "react-family__member" >{ member .name}</ li >
))}
</ ul >
)
조건에 따라 리스트 렌더링을 수행하거나, 수행하지 않도록 프로그래밍 할 수 있습니다.
Copy const reactFamily = [
{ id : 'go1qhwkay' , name : 'React' } ,
{ id : 'jdkw8wjbk' , name : 'Redux' } ,
{ id : 'ekjkfdcj4o' , name : 'React Router' } ,
]
const ReactFamilyJSX =
// 조건 식
reactFamily . length > 0 ?
(
// 조건이 참인 경우
< ul className = "react-family" >
{ reactFamily .map (member => (
< li className = "react-family__member" >{ member .name}</ li >
))}
</ ul >
) :
(
// 조건이 거짓인 경우
< p >공부 할 React 패밀리가 없습니다.</ p >
)
함수를 사용해 코드를 묶어 재사용 할 수 있도록 할 수 있고, 함수에서는 '식' 대신 '문'을 사용해 결과 값을 반환하도록 구성할 수도 있습니다.
Copy function renderReactFamily (items) {
// 조건 문
if ( items . length > 0 ) {
return (
< ul className = "react-family" >
{ items .map (item => (
< li className = "react-family__member" >{ item .name}</ li >
))}
</ ul >
)
} else {
return < p >공부 할 React 패밀리가 없습니다.</ p >
}
}
const ReactFamilyJSX = renderReactFamily (reactFamily)