React Study

React - Conditional Rendering

2020. 11. 10. 23:07
๋ชฉ์ฐจ
  1. ๐Ÿ“Œ ๋ชฉ์ฐจ
  2. ๐Ÿ“Œ Introduction
  3. ๐Ÿ“Œ Conditional Rendering
  4. ์ฒซ๋ฒˆ์งธ : ์‚ผํ•ญ ์—ฐ์‚ฐ์ž
  5. ๋‘๋ฒˆ์งธ : && ์—ฐ์‚ฐ์ž
  6. ๐Ÿ“Œ Conditional Props(์ค„์ธ ๋ฒ„์ „)
  7. ๐Ÿ“Œ Conclusion
๋ฐ˜์‘ํ˜•

๐Ÿ“Œ ๋ชฉ์ฐจ

  • Introduction
  • Conditional Rendering
  • Condtional Props
  • Conclusion

๐Ÿ“Œ Introduction

์•ˆ๋…•ํ•˜์„ธ์š” ์˜ค๋Š˜์€ react์—์„œ์˜ conditional rendering์— ๋Œ€ํ•ด์„œ ์•Œ์•„๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. conditional rendering์€ vue์—์„œ์˜ v-if ๊ฐ™์€ ๋…€์„์ด๋ผ๊ณ  ์ƒ๊ฐํ•˜์‹œ๋ฉด ํŽธํ• ๊ฑฐ ๊ฐ™์•„์š”.

๐Ÿ“Œ Conditional Rendering

์ผ๋‹จ ๋จผ์ € Hello์—๊ฒŒ props๋กœ isSpecial์„ ๋„˜๊ฒจ์ฃผ๊ฒ ์Šต๋‹ˆ๋‹ค.

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

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

export default App;

์ด์ œ Hello component๋ฅผ ๋ณผ๊ฒŒ์š”. ์ด ๋‘๊ฐ€์ง€ ๋ฐฉ๋ฒ• ์ด์žˆ์–ด์š”.

์ฒซ๋ฒˆ์งธ : ์‚ผํ•ญ ์—ฐ์‚ฐ์ž

import React from "react";

function Hello({ name, color, isSpecial }) {
  return (
    <div style={{ color }}>
      <b>{isSpecial ? "speical" : "unspecial"}</b>
      Hi, {name}
    </div>
  );
}

Hello.defaultProps = {
  name: "์ด๋ฆ„ ์—†์Œ",
};

export default Hello;

์‚ผํ•ญ์—ฐ์‚ฐ์ž๋Š” ๋ณดํ†ต ๋ฐ์ดํ„ฐ๊ฐ€ ๋ฐ”๋€”๋•Œ ์‚ฌ์šฉํ•˜๋ฉด ์ข‹์•„์š”.
ํ•˜์ง€๋งŒ ๋‹จ์ˆœํžˆ ๋ณด์—ฌ์ฃผ๊ณ  ์•ˆ๋ณด์—ฌ์ฃผ๋Š” ๋ถ€๋ถ„์€ &&์—ฐ์‚ฐ์ž๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ์ข€๋” ๊น”๋”ํ•˜๊ฒŒ ์ฒ˜๋ฆฌ๋ฅผ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋‘๋ฒˆ์งธ : && ์—ฐ์‚ฐ์ž

import React from "react";

function Hello({ name, color, isSpecial }) {
  return (
    <div style={{ color }}>
      {isSpecial && <b>*</b>}
      Hi, {name}
    </div>
  );
}

Hello.defaultProps = {
  name: "์ด๋ฆ„ ์—†์Œ",
};

export default Hello;

์œ„์˜ ์ฝ”๋“œ๋ฅผ ์‚ผํ•ญ ์—ฐ์‚ฐ์ž๋ฅผ ์‚ฌ์šฉํ•˜๊ฒŒ ๋œ๋‹ค๋ฉด

{isSpecial ? <b>*</b> : null}

์ด๋ ‡๊ฒŒ ์‚ฌ์šฉํ•ด์•ผ ํ–ˆ์„ํ…๋ฐ... ์ข€๋” ๊น”๋”ํ•˜์ฃ ?

์ฐธ๊ณ ๋กœ ์‚ผํ•ญ ์—ฐ์‚ฐ์ž์—์„œ null, false, undefined๋Š” ๋žœ๋”๋ง์„ ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ 0โญ๏ธ์€ ๋žœ๋”๋ง ๋œ๋‹ค๋Š” ์‚ฌ์‹ค์„ ์žŠ์ง€๋งˆ์„ธ์š”.

๐Ÿ“Œ Conditional Props(์ค„์ธ ๋ฒ„์ „)

์›๋ž˜ ๋Œ€๋กœ๋ผ๋ฉด ์ด๋ ‡๊ฒŒ ๋‚ด๋ ค์ฃผ๊ฒ ์ง€๋งŒ...

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

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

export default App;
import React from "react";
import Hello from "./Hello";
import Wrapper from "./Wrapper";

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

export default App;

isSpecial๋กœ ์ค„์—ฌ์„œ ์“ธ์ˆ˜๋„ ์žˆ์–ด์š”. ๋˜‘๊ฐ™์ด true๊ฐ’์ด ๋‚ด๋ ค๊ฐ€๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.

๐Ÿ“Œ Conclusion

์˜ค๋Š˜์€ ์กฐ๊ฑด๋ถ€ ๋žœ๋”๋ง์— ๋Œ€ํ•ด์„œ ์•Œ์•„๋ณด์•˜์Šต๋‹ˆ๋‹ค. ๊ฐœ์ธ์ ์œผ๋กœ vue์˜ v-if๊ฐ€ ํŽธํ• ๊ฑฐ ๊ฐ™์ง€๋งŒ react์—์„œ๋Š” react ๋ฐฉ์‹์œผ๋กœ ํ•ด์ค˜์•ผํ•˜๊ฒ ์ฃ ? ์‚ฌ์‹ค ๊ทผ๋ฐ javascript๊ฐ€ ํŽธํ•œ ์‚ฌ๋žŒ์ด๋ผ๋ฉด react์˜ ์ฝ”๋“œ๊ฐ€ ์ข€๋” ์ฝ๊ธฐ๋Š” ์‰ฌ์šธ์ˆ˜๋„ ์žˆ์„๊ฑฐ ๊ฐ™์•„์š”. ๊ทธ๋Ÿผ ๋‹ค์Œ ํฌ์ŠคํŒ…์—์„œ ๋งŒ๋‚˜์š”~~!

๋ฐ˜์‘ํ˜•

'React Study' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

React - ๋ฐฐ์—ด ๋žœ๋”๋ง  (0) 2020.12.03
React - useRef ํŠน์ •๋” ์ง€์ •ํ•˜๊ธฐ  (0) 2020.12.02
React - input ๊ด€๋ฆฌ  (0) 2020.12.01
React - useState  (0) 2020.11.12
React - Props  (0) 2020.11.09
  1. ๐Ÿ“Œ ๋ชฉ์ฐจ
  2. ๐Ÿ“Œ Introduction
  3. ๐Ÿ“Œ Conditional Rendering
  4. ์ฒซ๋ฒˆ์งธ : ์‚ผํ•ญ ์—ฐ์‚ฐ์ž
  5. ๋‘๋ฒˆ์งธ : && ์—ฐ์‚ฐ์ž
  6. ๐Ÿ“Œ Conditional Props(์ค„์ธ ๋ฒ„์ „)
  7. ๐Ÿ“Œ Conclusion
'React Study' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€
  • React - useRef ํŠน์ •๋” ์ง€์ •ํ•˜๊ธฐ
  • React - input ๊ด€๋ฆฌ
  • React - useState
  • React - Props
eddie0329
eddie0329
Front-end Developer
๋ฐ˜์‘ํ˜•
eddie0329
Eddie Sunny's Blog
eddie0329
์ „์ฒด
์˜ค๋Š˜
์–ด์ œ
  • ๋ถ„๋ฅ˜ ์ „์ฒด๋ณด๊ธฐ (100)
    • Summary of Book (0)
    • Vue Study (11)
    • Vue TDD (9)
    • Vue BDD (5)
    • Design Pattern (9)
    • Javascript Study (3)
    • React Study (15)
    • React TDD (1)
    • Vue Storybook (2)
    • Refactoring (0)
    • Graphql_Apollo (3)
    • Svelte (8)
    • Open Source (1)
    • D3 (4)
    • Typescript (1)
    • CSS (2)
    • Android (0)
    • Java (0)
    • Kotlin (0)
    • ์žก๋‹ด (0)
    • Swift (19)
    • Rust (2)
    • ํšŒ์‚ฌ์ด์•ผ๊ธฐ (2)
    • ReactNative Study (2)
    • Vitest (0)

๋ธ”๋กœ๊ทธ ๋ฉ”๋‰ด

  • Home

๊ณต์ง€์‚ฌํ•ญ

์ธ๊ธฐ ๊ธ€

ํƒœ๊ทธ

  • javascript pattern
  • CSS
  • D3
  • vue cypress
  • Cypress
  • TypeScript
  • jest
  • swift
  • Vue test
  • react useRef
  • BDD
  • react-component-slot
  • Design Pattern
  • swift5
  • apollo
  • react
  • slot ํŒจํ„ด
  • TDD
  • vue3
  • vue tdd
  • Nextjs
  • Javascript
  • Kotlin
  • React Native
  • vue storybook
  • svelte
  • client only
  • vue bdd
  • Vue
  • storybook6

์ตœ๊ทผ ๋Œ“๊ธ€

์ตœ๊ทผ ๊ธ€

hELLO ยท Designed By ์ •์ƒ์šฐ.
eddie0329
React - Conditional Rendering
์ƒ๋‹จ์œผ๋กœ

ํ‹ฐ์Šคํ† ๋ฆฌํˆด๋ฐ”

๋‹จ์ถ•ํ‚ค

๋‚ด ๋ธ”๋กœ๊ทธ

๋‚ด ๋ธ”๋กœ๊ทธ - ๊ด€๋ฆฌ์ž ํ™ˆ ์ „ํ™˜
Q
Q
์ƒˆ ๊ธ€ ์“ฐ๊ธฐ
W
W

๋ธ”๋กœ๊ทธ ๊ฒŒ์‹œ๊ธ€

๊ธ€ ์ˆ˜์ • (๊ถŒํ•œ ์žˆ๋Š” ๊ฒฝ์šฐ)
E
E
๋Œ“๊ธ€ ์˜์—ญ์œผ๋กœ ์ด๋™
C
C

๋ชจ๋“  ์˜์—ญ

์ด ํŽ˜์ด์ง€์˜ URL ๋ณต์‚ฌ
S
S
๋งจ ์œ„๋กœ ์ด๋™
T
T
ํ‹ฐ์Šคํ† ๋ฆฌ ํ™ˆ ์ด๋™
H
H
๋‹จ์ถ•ํ‚ค ์•ˆ๋‚ด
Shift + /
โ‡ง + /

* ๋‹จ์ถ•ํ‚ค๋Š” ํ•œ๊ธ€/์˜๋ฌธ ๋Œ€์†Œ๋ฌธ์ž๋กœ ์ด์šฉ ๊ฐ€๋Šฅํ•˜๋ฉฐ, ํ‹ฐ์Šคํ† ๋ฆฌ ๊ธฐ๋ณธ ๋„๋ฉ”์ธ์—์„œ๋งŒ ๋™์ž‘ํ•ฉ๋‹ˆ๋‹ค.