기은P
시간이 멈추는 장소
기은P
  • Programming (272)
    • 개발노트 (1)
    • FrontEnd (56)
      • ES&JS 문법 (14)
      • HTML&CSS (4)
      • React 기본 (18)
      • React 심화 (12)
      • React 이슈 (2)
      • Project 연습 (1)
      • Next.js (5)
    • Backend&Devops (33)
      • AWS (2)
      • Docker (9)
      • Jenkins (6)
      • Nginx (6)
      • Node.js (1)
      • ElasticSearch (5)
      • 프레임워크&아키텍처 (2)
      • 암호화 (0)
      • 기타 (2)
    • 알고리즘 (3)
    • C# (8)
      • WPF (8)
    • Java (51)
      • 순수 Java (18)
      • RDF&Jena (12)
      • RCP&GEF (9)
      • JMX (5)
      • JMapper (3)
      • 오류해결 (4)
    • Database (21)
      • RDBMS (9)
      • NoSQL (2)
      • TSDB (1)
      • GraphQL (1)
      • Hibernate (3)
      • 데이터베이스 이론 (4)
      • Redis (1)
    • 프로토콜 (11)
      • Netty (4)
      • gRPC (5)
      • 프로토콜 개념 (2)
    • Server (4)
      • Linux (4)
    • 2020 정보처리기사 필기 (43)
      • 목차 (1)
      • 기출문제 (1)
      • 1과목 - 소프트웨어 설계 (6)
      • 2과목 - 소프트웨어 개발 (7)
      • 3과목 - 데이터베이스 구축 (8)
      • 4과목 - 프로그래밍 언어 활용 (7)
      • 5과목 - 정보시스템 구축 관리 (10)
    • 2020 정보처리기사 실기 (31)
      • 목차 (4)
      • 기출예상문제 (19)
      • 실기요약 (8)
    • 빅데이터분석기사 필기 (4)
      • 목차 (0)
      • 필기 요약 (3)
    • 전기 공학 (1)
      • CIM (1)
    • 산업자동화시스템 (3)
      • SCADA (1)
      • OPC UA (2)
    • 디자인패턴 (1)
    • 휴지통 (0)

공지사항

  • 공지사항/포스팅 예정 항목

최근 댓글

최근 글

전체 방문자
오늘
어제

티스토리

hELLO · Designed By 정상우.
기은P

시간이 멈추는 장소

FrontEnd/React 기본

[React] React.js 강좌 7. 조건부 연산자

2021. 11. 25. 13:55
반응형

React.js 조건부 연산자

 

 

흔히 사용하는 if 조건부 말고도 여러 조건들을 JSX 안에서 인라인으로 처리할 수 있는 방법이 있습니다.

논리 && 연산자로 if를 인라인으로 표현할 수가 있는데요.

 

JSX안에는 중괄호를 이용해서 표현식을 포함할 수 있습니다. 이때, 그 안에 Javascript의 논리 연산자 &&을 사용하면 쉽게 엘리먼트를 조건부로 넣을 수 있습니다.

 

 

function Mailbox(props) {
  const unreadMessages = props.unreadMessages;
  return (
    <div>
      <h1>Hello!</h1>
      {unreadMessages.length > 0 &&
        <h2>
          You have {unreadMessages.length} unread messages.
        </h2>
      }
    </div>
  );
}

const messages = ['React', 'Re: React', 'Re:Re: React'];
ReactDOM.render(
  <Mailbox unreadMessages={messages} />,
  document.getElementById('root')
);

 true && expression라고 표현할 수가 있는데, 위 코드를 해석하면 unreadMessages.Length가 0 이상일 경우에 && 뒤에 있는 <h2> 태그가 출력되는 구조입니다.

 

물론 조건이 false라면 우측에 있는 태그는 출력되지 않습니다.

 

 

 

render() {
  const count = 0;
  return (
    <div>
      { count && <h1>Messages: {count}</h1>}
    </div>
  );
}

하지만 위 코드처럼 <div> 내부에서 && 표현식을 사용할 경우 false라도 <div>0</div>와 같이 render가 된다는 점 참고해야 합니다.

 

 

 

 

 

다른 방법으로는 조건부 연산자로 If-Else 구문을 인라인으로 표현할 수가 있습니다.

condition ? true : false라고 표현하는데,

render() {
  const isLoggedIn = this.state.isLoggedIn;
  return (
    <div>
      The user is <b>{isLoggedIn ? 'currently' : 'not'}</b> logged in.
    </div>
  );
}

isLoggedIn이 true/false 일때 우측에 값이 표시가 되는 삼항연산자와 같은 표현을 할 수 있습니다.

 

 

render() {
  const isLoggedIn = this.state.isLoggedIn;
  return (
    <div>
      {isLoggedIn
        ? <LogoutButton onClick={this.handleLogoutClick} />
        : <LoginButton onClick={this.handleLoginClick} />
      }
    </div>
  );
}

위와 같이 더 큰 문장도 표현할 수가 있습니다.

 

 

반응형
저작자표시 변경금지 (새창열림)

'FrontEnd > React 기본' 카테고리의 다른 글

[React] React.js 강좌 9. Input 상태 관리하기  (0) 2021.11.26
[React] React.js 강좌 8. 함수형 컴포넌트 props 정리  (0) 2021.11.25
[React] React.js 강좌 6. Error Catch  (0) 2021.11.25
[React] React.js 강좌 5. 이벤트 처리, Bind  (0) 2021.11.19
[React] React.js 강좌 4. 생명주기 이벤트  (0) 2021.11.18
    'FrontEnd/React 기본' 카테고리의 다른 글
    • [React] React.js 강좌 9. Input 상태 관리하기
    • [React] React.js 강좌 8. 함수형 컴포넌트 props 정리
    • [React] React.js 강좌 6. Error Catch
    • [React] React.js 강좌 5. 이벤트 처리, Bind
    기은P
    기은P
    기은P의 블로그 일상과 개발 관련 포스팅 #React #Typescript #Next #Nest https://github.com/kimdongjang

    티스토리툴바