๊ฐœ๋ฐœ ๐Ÿพ/ReactJS

props๋กœ ์ „๋‹ฌ๋˜๋Š” ํ…์ŠคํŠธ ๋ผ์ธ ์ค„๋ฐ”๊ฟˆ ์ฒ˜๋ฆฌ๋Š” 2๊ฐ€์ง€ ๋ฐฉ๋ฒ• !

JOTOKKI 2021. 8. 26. 21:23
728x90

๊ฐœ๋ฐœ์„ ํ•˜๋‹ค ๋ณด๋ฉด props๋กœ ์ „๋‹ฌ๋ฐ›์€ ํ…์ŠคํŠธ์˜ ์ค„ ๋ฐ”๊ฟˆ์„ ํ•ด์•ผ ํ•˜๋Š” ๊ฒฝ์šฐ๊ฐ€ ์ข…์ข… ์žˆ์Šต๋‹ˆ๋‹ค. 

๋งค๋ฒˆ ๊นŒ๋จน์œผ๋‹ˆ ์ •๋ฆฌํ•ด ๋†“์œผ๋ ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค. ๐Ÿ˜‘

๋จผ์ € ํ…์ŠคํŠธ๋ฅผ ์ž…๋ ฅ๋ฐ›์•„ ๋ฟŒ๋ ค์ฃผ๋Š” ์ดˆ ๊ฐ„๋‹จ ์ปดํฌ๋„ŒํŠธ๋ฅผ ๋งŒ๋“ค์–ด ๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. 

const Item = ({ text }) => {
  return <p>{text}</p>;
};

export default function App() {
  return (
    <div className="App">
      <Item text={"์•ˆ๋‡ฝํ•˜์„ธ์š”"} />
    </div>
  );
}

์—ฌ๊ธฐ์—์„œ text์— ์ค„๋ฐ”๊ฟˆ์ด ๋“ค์–ด๊ฐ„ ํ…์ŠคํŠธ๋ฅผ ์ž…๋ ฅํ•˜๋ ค๊ณ  ํ•  ๋•Œ 

์•„๋งˆ brํƒœ๊ทธ๋ฅผ ์‚ฌ์šฉํ•˜๊ฑฐ๋‚˜ '\n'๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ค„๋ฐ”๊ฟˆ์„ ์‹œ๋„ํ•˜์‹ค ์ˆ˜ ์žˆ์„ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.

ํ•˜์ง€๋งŒ ์˜ˆ์ƒ๊ณผ๋Š” ๋‹ฌ๋ฆฌ ๊ทธ๋Œ€๋กœ ์ถœ๋ ฅํ•ด ๋ณด๋ฉด ๋ฌธ์ž๋กœ ์ถœ๋ ฅ๋ผ ๋ฒ„๋ฆฌ๋Š” ๊ฒƒ์„ ์•Œ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. 

๊ฒฐ๊ณผ ํ™”๋ฉด

์™œ ์ด๋Ÿฐ ๋ฌธ์ œ๊ฐ€ ์ƒ๊ธฐ๋Š” ๊ฑธ๊นŒ์š”? ๐Ÿ˜ฎ

์ด๋ฆฌ์ €๋ฆฌ ํ…Œ์ŠคํŠธ ํ•ด๋ณธ ๊ฒฐ๊ณผ value์˜ ๊ฐ’์ด String๊ณผ ์„ž์ด๊ฒŒ ๋˜๋ฉด String ํƒ€์ž…์œผ๋กœ ๋ฐ˜ํ™˜๋˜๋Š” ๊ฒƒ์ฒ˜๋Ÿผ ๋ณด์ž…๋‹ˆ๋‹ค. 

๋งˆ์น˜ javascript์—์„œ 123(์ˆซ์ž) + 'hello'(๋ฌธ์ž์—ด) = 123hello(๋ฌธ์ž์—ด) ์ด ๋˜์–ด๋ฒ„๋ฆฌ๋Š” ๊ฒƒ์ฒ˜๋Ÿผ ๋ง์ด์—์š”. ๊ฒฐ๊ตญ์—๋Š” React๋„ javascript๋‹ˆ๊นŒ์š”! (๊ฐœ์ธ์ ์ธ ์˜๊ฒฌ์ž…๋‹ˆ๋‹ค)

 

์ฐธ๊ณ ๋กœ prop์— ํƒœ๊ทธ๋งŒ ๋ณด๋‚ผ ๊ฒฝ์šฐ์—๋Š” ์ž˜ ๋™์ž‘๋ฉ๋‹ˆ๋‹ค. 

๊ฒฐ๊ณผ ํ™”๋ฉด

 

๊ทธ๋Ÿผ ์ด๋Ÿฐ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด ์–ด๋–ค ๋ฐฉ๋ฒ•๋“ค์ด ์žˆ๋Š”์ง€ ์‚ดํŽด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

 

1. replace๋กœ ๋ฌธ์ž ์น˜ํ™˜ ํ•˜๊ธฐ

\n์ด๋‚˜ <br/>๊ณผ ๊ฐ™์€ ๋ฌธ์ž๋ฅผ ํƒœ๊ทธ๋กœ ์น˜ํ™˜ํ•ด ์ฃผ๋Š” ๋ฐฉ์‹์ž…๋‹ˆ๋‹ค.

๋ฐ›๋Š” ์ž์‹ ์š”์†Œ์—์„œ props๋ฅผ ๋ฐ›์•„ return ํ•  ๋•Œ ์ฒ˜๋ฆฌํ•ด ์ค๋‹ˆ๋‹ค. 

const Item = ({ text }) => {
  return <p>
    {text.split("\n").map((txt) => (
        <>
          {txt}
          <br />
        </>
      ))}
  </p>;
};

export default function App() {
  return (
    <div className="App">
      <Item text={"๋‚ด ์ด๋ฆ„์€ \n ๊ณ ๊ธธ๋™"} />
    </div>
  );
}

๊ฒฐ๊ณผ ํ™”๋ฉด

์ž˜ ์ ์šฉ๋˜๋Š” ๊ฒƒ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. 

 

2. ๋ฐฐ์—ด ์‚ฌ์šฉํ•˜๊ธฐ

์•„๋‹ˆ๋ฉด ๊ฐ’์„ ๋„˜๊ธธ ๋•Œ ๋ฌธ์ž์—ด์„ ํƒ€์ž…๋ณ„๋กœ ๋ฐฐ์—ด์— ๋‹ด์•„ ๋ณด๋‚ด์ค๋‹ˆ๋‹ค. 

const Item = ({ text }) => {
  return text;
};

export default function App() {
  return (
    <div className="App">
      <Item text={["์•ˆ๋…•", <br />, "์นœ๊ตฌ๋“ค"]} />
    </div>
  );
}

๊ฒฐ๊ณผ ํ™”๋ฉด

์—ญ์‹œ ์ž˜ ๋™์ž‘ํ•ฉ๋‹ˆ๋‹ค!


์ž์ฃผ ์‚ฌ์šฉ๋˜๊ณ  ์œ ์—ฐํ•œ ์ปดํฌ๋„ŒํŠธ๋ฅผ ๋งŒ๋“ค๊ธฐ ์œ„ํ•ด์„œ๋Š” ์ฒซ ๋ฒˆ์งธ ๋ฐฉ๋ฒ•์ด ์ข€ ๋” ์ ํ•ฉํ•ด ๋ณด์ž…๋‹ˆ๋‹ค. 

๊ฐ„ํ˜น ํŠน์ • ํ•œ ๊ตฐ๋ฐ์—๋งŒ ๊ตญํ•œ๋˜์–ด ์‚ฌ์šฉ๋˜๋Š” ๊ฒฝ์šฐ ๋‘ ๋ฒˆ์งธ ๋ฐฉ๋ฒ•์€ ์ง์ ‘ ์ปดํฌ๋„ŒํŠธ๋ฅผ ๊ฑด๋“œ๋ฆฌ์ง€ ์•Š๊ณ  ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ์–ด ํ•œ ๋ฒˆ ์“ฐ์ด๋Š” ๊ฒฝ์šฐ์— ์‚ฌ์šฉํ•˜๋ฉด ์ข‹๊ฒ ๋„ค์š”. 

๋ฐ˜์‘ํ˜•