Zoeeey
Stack flows in you
Zoeeey
  • 분류 전체보기 (155)
    • 💡 UXUI (4)
      • UXUI (2)
      • UI (2)
      • UX (0)
    • 🟨 JavaScript (66)
      • 개념 (42)
      • 정리 (2)
      • 문제풀기 (프로그래머스, 코딩애플) (15)
      • 응용하여 자동화or문제해결하기 (2)
      • 기타 (5)
    • ⚛️ React (49)
      • 개념 (27)
      • 개념(Redux) (3)
      • 정리 (4)
      • 문제풀기 (코딩애플: React) (15)
    • 📘 TypeScript (10)
      • 개념 (8)
      • 문제풀기 (코딩애플) (2)
    • 🌐 HTML,CSS (18)
      • 실무에서 자주 발생한 오류들 (10)
      • 뒤늦게 알아서 뼈아픈 유용한 CSS (6)
      • 기타 자주 쓰는 CSS (2)
    • 💻 CS (8)
      • CS (5)
      • 정규표현식 (2)
      • Git,Github (1)

태그

  • class
  • 오류
  • redux
  • Props
  • react
  • array
  • UXUI
  • TypeScript
  • useEffect
  • JavaScript
  • object
  • 삼항연산자
  • CS
  • Ajax
  • 프로그래머스
  • state
  • json
  • CSS
  • 코딩애플
  • axios
전체 방문자
오늘
어제
hELLO · Designed By 정상우.
Zoeeey

Stack flows in you

⚛️ React/개념

React : 에서 자주 쓰는 if문 패턴 5가지 (if, 삼항연산자, &&, switch, object)

2023. 6. 29. 10:47

1. 컴포넌트 안에서 쓰는 if/else

컴포넌트에서 JSX를 조건부로 보여주고 싶을 때 사용한다.
if문은 return()안의 JSX내에서는 사용이 불가능하므로 보통 아래처럼 return+JSX를 뱉는 if문을 작성해 사용한다.

function Component() {
  if ( true ) {
    return <p>참일시 노출될 HTML</p>;
  } else {
    return null;
  }
}

else 생략하는 법

return을 만나면 코드가 종료되므로 이렇게 축약 가능하다.

function Component() {
  if ( true ) {
    return <p>참일시 노출될 HTML</p>;
  }
  return null;
}

2. JSX 안에서 쓰는 삼항연산자(ternary operator)

jsx 내(return 내)에서 쓸 수 있다.

조건문 ? 조건문 참일때 실행할 코드 : 거짓일 때 실행할 코드

function Component() {
  return (
    <div>
      {
        1 === 1
        ? <p>참일시 노출될 HTML</p>
        : null
      }
    </div>
  )
}

삼항연산자 중첩 사용

아래는 1 === 1은 항상 참이라서 2 === 2는 검사되지 않지만, 중첩사용 방법만 보자.
그리고 이것보단 return문 바깥에 if else 쓰는게 더 나은듯?

function Component() {
  return (
    <div>
      {
        1 === 1
        ? <p>1 === 1는 항상 참이므로 매번 노출된다.</p>
        : ( 2 === 2 
            ? <p>참일시 ...</p> 
            : <p>거짓일시 ...</p> 
          )
      }
    </div>
  )
}

3. && 연산자로 if 역할 대신하기

js에서 &&는 양쪽이 true일 시 true를 남기고, 아닐 시 false를 남긴다.

그러나 boolean형이 아닌 자료형을 넣으면 아래와 같다.

true && '안녕'; // '안녕'
false && '안녕'; // false
true && false && '안녕'; // false

자바스크립트는 &&로 연결된 값들 중 처음 등장하는 falsy 값을 찾고, 그게 아니면 마지막값을 남긴다.

원리는 아래와 같다.

1. 만약 첫 번째 피연산자가 false로 평가되는 값이면, false가 반환된다. 그리고 두 번째 피연산자는 평가되지 않고 무시된다.
2. 첫 번째 피연산자가 true로 평가되는 값이면, && 연산자는 두 번째 피연산자를 평가하고 그 결과를 반환한다.

function Component() {
  return (
    <div>
      {
        1 === 1
        ? <p>참이면 보여줄 HTML</p> <!-- 삼항연산자 -->
        : null
      }
    </div>
  )
} 

function Component() {
  return (
    <div>
      { 1 === 1 && <p>참이면 보여줄 HTML</p> } <!-- &&연산자 -->
    </div>
  )
}

위 두 예제는 동일한 역할을 한다. 위처럼 변수가 참이면 html를 뱉고 거짓이면 null을 뱉는 식의 조건부 코드를 많이 쓴다.


4. switch / case 조건문

switch는 if문을 연달아쓰는 것에 비해 코드가 줄어들고 가독성이 좋지만,
조건식에서 변수 하나만 검사할 수 있는 것이 단점이다.

function Component2(){
  var user = 'seller';
  switch (user){
    case 'seller' :
      return <h4>판매자 로그인</h4>
    case 'customer' :
      return <h4>구매자 로그인</h4>
    default : 
      return <h4>그냥 로그인</h4>
  }
}

5. object / array 자료형 응용

경우에 따라 다른 html을 보여주고 싶은 경우, if문 여러개 혹은 삼항연산자 여러개를 작성하는 대신 이렇게 할 수 있다.

object 자료형으로 html을 담은 후 마지막에 object() 뒤에 []대괄호를 붙여 key값을 설정하여 key값이 현재상태인 자료를 남기도록 한다.

function Component() {
  var 현재상태 = 'info';
  return (
    <div>
      {
        { 
           info : <p>상품정보</p>,
           shipping : <p>배송관련</p>,
           refund : <p>환불약관</p>
        }[현재상태]
      }
    </div>
  )
}

위 코드를 아래처럼 변수에 저장해서 써도 된다.

var 탭UI = { 
  info : <p>상품정보</p>,
  shipping : <p>배송관련</p>,
  refund : <p>환불약관</p>
}

function Component() {
  var 현재상태 = 'info';
  return (
    <div>
      {
        탭UI[현재상태]
      }
    </div>
  )
}

출처 : 코딩애플 https://codingapple.com/

저작자표시 비영리 동일조건 (새창열림)

'⚛️ React > 개념' 카테고리의 다른 글

React : 개발자도구 크롬 확장프로그램 (React/Redux Developer Tools)  (0) 2023.07.04
React : 실시간 데이터가 중요할땐 react-query (설치/사용), RTK Query  (0) 2023.07.04
React : props 중첩되어있을 때 편한 "Context API" (사용법)  (0) 2023.06.15
React : AJAX로 서버와 통신하기 (post, 동시에 요청 여러개 날리기, fetch)  (0) 2023.06.07
React : AJAX로 서버와 통신하기 (ajax, axios)  (0) 2023.05.26
    '⚛️ React/개념' 카테고리의 다른 글
    • React : 개발자도구 크롬 확장프로그램 (React/Redux Developer Tools)
    • React : 실시간 데이터가 중요할땐 react-query (설치/사용), RTK Query
    • React : props 중첩되어있을 때 편한 "Context API" (사용법)
    • React : AJAX로 서버와 통신하기 (post, 동시에 요청 여러개 날리기, fetch)
    Zoeeey
    Zoeeey
    길게 생각하고 짧게 그리기

    티스토리툴바