๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ

react

React / ์กฐ๊ฑด๋ถ€ ๋ Œ๋”๋ง

์กฐ๊ฑด๋ถ€ ๋ Œ๋”๋ง

 

๋ฆฌ์•กํŠธ์—์„œ๋Š” ๋‹จ์ˆœ ๊ฐ’๋งŒ์ด ์•„๋‹Œ HTML ๊ตฌ์กฐ๋‚˜ ๋””์ž์ธ๋„ ๋‹น์—ฐํžˆ ๋ฐ”๊ฟ”์„œ ๋ฆฌ๋ Œ๋”๋ง ํ•  ์ˆ˜๋„ ์žˆ๋‹ค.

์กฐ๊ฑด๋ถ€ ๋ Œ๋”๋ง์œผ๋กœ ํ•  ์ˆ˜ ์žˆ๋Š”๋ฐ, ์ด๋Š” ํŠน์ • ์กฐ๊ฑด์— ๋”ฐ๋ผ ๋‹ค๋ฅธ ์ปดํฌ๋„ŒํŠธ๋‚˜ ์š”์†Œ๋ฅผ ๋ Œ๋”๋งํ•˜๋Š” ๊ฒƒ์œผ๋กœ, ์กฐ๊ฑด๋ฌธ์ด๋‚˜ ๋…ผ๋ฆฌ ์—ฐ์‚ฐ์ž๋ฅผ ํ™œ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.

 

 

๋‹ค์Œ์€ ํŠน์ • ๊ฐ์ • ๋ฒ„ํŠผ์„ ๋ˆ„๋ฅด๋ฉด ๊ทธ ๊ฐ์ •์˜ ํ‘œ์ •์„ ํ™”๋ฉด์— ๋ Œ๋”๋ง์‹œํ‚ค๋Š” ์ฝ”๋“œ๋‹ค. 

setMood()๋กœ ๊ฐ์ •์˜ ์ƒํƒœ๋ฅผ ๋ณ€๊ฒฝํ•ด์ฃผ๊ณ  ์žˆ๋Š”๋ฐ, ์ด ๋•Œ ์„ธ๊ฐ€์ง€ ๋ฐฉ๋ฒ•์œผ๋กœ ๋ฆฌ๋ Œ๋”๋งํ•ด์ค„ ์ˆ˜ ์žˆ๋‹ค.

 

App.jsx

function App() {
  const [mood, setMood] = useState('Normal');

  return (
    <>
      <Face mood={mood} />
      <Face2 mood={mood} />
      <Face3 mood={mood} />
      <div
        className={
          mood === 'Happy' ? 'happy' : mood === 'Normal' ? 'normal' : 'sad'
        }>
        ๊ธฐ๋ถ„ : {mood}
      </div>
      <div>
        <button onClick={() => setMood('Happy')} value="happy">
          happy
        </button>
        <button onClick={() => setMood('Normal')} value="normal">
          normal
        </button>
        <button onClick={() => setMood('Sad')} value="sad">
          sad
        </button>
      </div>
    </>
  );
}

 

 

 

๋ฐฉ๋ฒ• 1. if๋ฌธ ์‚ฌ์šฉํ•˜๊ธฐ

// 1. if๋ฌธ์œผ๋กœ ๋ฆฌํ„ดํ•˜๋Š” jsx๋ฌธ ๋ฐ”๊ฟ”์ฃผ๊ธฐ
function Face({ mood }) {
  if (mood === 'Happy') {
    return <div>๐Ÿ˜„</div>;
  } else if (mood === 'Normal') {
    return <div>๐Ÿ˜ถ</div>;
  } else if (mood === 'Sad') {
    return <div>๐Ÿ˜ญ</div>;
  }
}

 

 

 

๋ฐฉ๋ฒ• 2. ์‚ผํ•ญ์—ฐ์‚ฐ์ž ์‚ฌ์šฉํ•˜๊ธฐ

๊ฐ€์žฅ ๋งŽ์ด ์“ฐ๋Š” ๋ฐฉ๋ฒ•์ด๋‹ค.

๋‹ค๋งŒ ๊ฐ€๋…์„ฑ์„ ์œ„ํ•ด ๋ถ„๊ธฐ๊ฐ€ 3๊ฐ€์ง€ ์ด์ƒ์ด๋ผ ์ค‘์ฒฉํ•ด์„œ ์‚ฌ์šฉํ•ด์•ผ ํ•  ๊ฒฝ์šฐ ๊ถŒ์žฅํ•˜์ง€๋Š” ์•Š๊ณ  ์žˆ๋‹ค.

// 2. ์‚ผํ•ญ์—ฐ์‚ฐ์ž ์‚ฌ์šฉํ•˜๊ธฐ
function Face2({ mood }) {
  return (
    <>
      {mood === 'Happy' ? (
        <div>๐Ÿ˜„</div>
      ) : mood === 'Normal' ? (
        <div>๐Ÿ˜ถ</div>
      ) : (
        <div>๐Ÿ˜ญ</div>
      )}
    </>
  );
}

 

์‚ผํ•ญ์—ฐ์‚ฐ์ž๋กœ className์„ ์กฐ๊ฑด์— ๋”ฐ๋ผ ๋ณ€๊ฒฝํ•ด์ค„ ์ˆ˜๋„ ์žˆ๋‹ค. (if๋ฌธ์€ jsx๋‚ด์—์„œ๋Š” ์ง์ ‘ ์‚ฌ์šฉํ•  ์ˆ˜ ์—†๋‹ค.)

  <div
    className={
      mood === 'Happy' ? 'happy' : 
      mood === 'Normal' ? 'normal' : 'sad'
    }>
    ๊ธฐ๋ถ„ : {mood}
  </div>

 

 

 

 

๋ฐฉ๋ฒ• 3. ๋…ผ๋ฆฌ์—ฐ์‚ฐ์ž && ์‚ฌ์šฉํ•˜๊ธฐ

// 3. ๋…ผ๋ฆฌ ์—ฐ์‚ฐ์ž
function Face3({ mood }) {
  return (
    <>
      {mood === 'Happy' && <div>๐Ÿ˜„</div>}
      {mood === 'Normal' && <div>๐Ÿ˜ถ</div>}
      {mood === 'Sad' && <div>๐Ÿ˜ญ</div>}
    </>
  );
}