[Code Camp 2주차] Conditional-rendering

FE 08김우중·2022년 7월 18일
0

포트폴리오를 제작하면서 게시글 작성 UI와 수정 UI를 같은 컴포넌트로 사용하려고 하는데 작성부분에서는 등록이라는 버튼과 타이틀이 필요하고 수정부분에서는 수정이라는 버튼과 타이틀이 필요한 문제가 생겼다.
어떻게 해결할까 생각을 하다 Conditional-rendering(조건부 렌더링)을 배워 해결할 수 있었다!!

Conditional-rendering

Conditinal-rendering은 조건부 렌더링이라고 불린다.
쉽게 말해 상태에 따라 앱의 동작을 변경하는 것을 말하는데 예를 들어
로그인을 하지 않았으면 로그인 버튼이 나와야하고 로그인을 하였으면 로그아웃 버튼이 나와야 할때 조건부 렌더링을 사용할 수 있다.
조건부 렌더링은 다양한 방법으로 사용할수있는데 한번 알아보자

1. 조건문을 사용

Javascript에서와 같이 if와 같은 조건문을 사용하여 특정 조건이 충족될 때 필요한 요소를 생성할 수 있다.

ex) 상태에 따라 등록버튼과 수정버튼을 보여주는 예

export default function BoardWrite(props) {
	return (
    	<>
        	<button>{ props.isEdit ? "수정하기" : "등록하기" }<button>
        </>
    )
}

이처럼 isEdit 상태를 props를 통하여 받아 삼항 연산자를 이용하여
상태가 true이면 수정하기 글자를 반대로 false이면 등록하기 글자를 렌더링 하게끔 해주었다

2. 논리 연산자를 사용

논리 연산자(&&)도 사용하여 요소를 조건부로 렌더링할 수 있다

export default function BoardPage(props) {
	return (
    	<>
        	{ props.boardList.length > 0 && <p>현재 { props.boardList.length } 개의 리스트가 있습니다</p> }
        </>
    )
}

이처럼 boardList의 길이가 0 이상일 경우에만 조건부로 렌더링을 해줄수있다

profile
새내기 개발자

0개의 댓글