React
[React] Rendering
wwxs
2024. 8. 29. 04:06
Rendering(렌더링)
- 작성한 코드를 화면에 출력하는 기능
더보기
interface IItem {
name: string;
isPacked: boolean
}
function Item({name, isPacked}: IItem) {
//! if 조건문을 사용한 조건부 렌더링
// if(isPacked){
// return(
// <li>{name} 😊</li>
// )
// } else{
// return(
// <li>{name}</li>
// )
// }
//! 삼항 연산자를 사용한 조건부 렌더링
// : 조건 ? 참일 경우 : 거짓일 경우
// return(
// <li>
// {/* HTML 내에서 JS문법 사용 시: {}내에 작성 */}
// { isPacked ? name + '🌟' : name}
// </li>
// )
//! 논리 연산자를 사용한 조건부 렌더링
return(
<li>
{/*
논리 연산자
&& 연산자 (a && b: 둘다 true 여야만 true값이 반환)
A && B
- A의 값이 false인 경우 B의 값 출력 (X)
- A의 값이 true인 경우 B의 값 출력 (O)
*/}
{ name } { isPacked && '👌'}
</li>
)
}
//# 부모 컴포넌트
export default function Rendering01() {
return (
<div>
<p>여행용 짐 목록</p>
<ul>
<Item name='과자' isPacked= {true}/>
<Item name='김밥' isPacked= {false}/>
<Item name='음료수' isPacked= {true}/>
</ul>
</div>
)
}
더보기
//! 배열 렌더링
// map, filter
export default function Rendering02() {
const people = ["홍동현", "홍길동", "윤대휘", "정규민", "김소빈"];
const peopleDescription = [
{
id: 0,
name: "홍동현",
job: "developer",
},
{
id: 1,
name: "홍길동",
job: "operation",
},
{
id: 2,
name: "윤대휘",
job: "business",
},
{
id: 3,
name: "정규민",
job: "business",
},
{
id: 4,
name: "김소빈",
job: "operation",
},
];
// map 콜백함수를 사용한 배열 렌더링
// >> 요소 개수의 변화 X
// : 전체 내용을 렌더링
const listItems = people.map((person, index) => {
// 배열을 렌더링하여 HTML 요소로 반환할 경우
// : 각 요소를 구분할 수 있는 구분값을
// key 속성에 전달!
return <li key={index}>{person}</li>;
});
// filter 콜백함수를 사용한 배열 렌더링
const businessItems = peopleDescription.filter(
(person) => person.job === "business"
);
// 필터링된 배열을 순회하여 UI로 반환된 businessItemsRender
const businessItemsRender = businessItems.map((person) => (
<li key={person.id}>{person.name}</li>
));
return (
<div>
<h2>Map을 사용한 전체 리스트 렌더링</h2>
<ul>{listItems}</ul>
<h2>filter 사용한 필터링 배열 렌더링</h2>
<ul>{businessItemsRender}</ul>
</div>
);
}