Front-End

vsoghlv@naver.com

React.js 조건부 렌더링

리액트에서 조건에 따라 결과를 다르게 보여줄 수 있는데 이를 조건부 렌더링이라 한다. 먼저 props 로 true 값을 보내준다.

//App.js
import React, { Component } from "react";
import Hello from "./Hello";
import Wrapper from "./Wrapper";

function App() {
  return (
    <Wrapper>
      <Hello name="sun" color="red" isSpecial={true}></Hello>
      <Hello color="blue"></Hello>
    </Wrapper>
  );
}

export default App;

이후 Hello.js 에서 삼항연산자를 이용해 isSpecial 이 값에따라 ‘*’ 을 출력해 주도록 한다. 이때 isSpecial 의 값을 지정해 주지 않았을 때는 true 값을 보내게 된다. <Hello name="sun" color="red" isSpecial></Hello> (isSpecial === true)

//Hello.js
import React from "react";

function Hello({ color, name, isSpecial }) {
  return (
    <div style=>
      {isSpecial ? <b>*</b> : null}안녕하세요 {name}
    </div>
  );
}
export default Hello;

위의 삼항연사자는 false 인경우 다른 결과가 아닌 null 을 리턴하기 때문에 {isSpecial && <b>*</b>} 이런 식으로 &&연산자를 통해 조금 더 간결하게 사용할 수 있다.

결과
*안녕하세요 sun
안녕하세요

이때 null, false, undefinde 등을 렌더링 하는 경우 아무것도 나타나지 않지만 0 을 렌더링 하는 경우 숫자 0이 그대로 찍히게 되므로 주의해야 한다.