๐Ÿ“Œ TIL 001 : React

5399 ๋‹จ์–ด ReactTILReact

โœ๏ธ React TIL ๊ธฐ๋ก์„ ์‹œ์ž‘ํ•˜๋ฉฐ...

๋‚˜๋Š” ๋ฆฌ์•กํŠธ๋ฅผ ํ”„๋ก ํŠธ์—”๋“œ ๊ตญ๋น„๊ณผ์ •์„ ํ†ตํ•ด ๊ณต๋ถ€ํ–ˆ์ง€๋งŒ ์ปค๋ฆฌํ˜๋Ÿผ์ด ๋๋‚˜๊ธฐ ์ง์ „์— ์ •๋ง ์งง๊ฒŒ ๋ฐฐ์šฐ๊ณ  ๋„˜์–ด๊ฐ”๋˜์ง€๋ผ ์‹ฌ๋„์žˆ๋Š” ํ•™์Šต์€ ๋ถˆ๊ฐ€๋Šฅํ–ˆ๋”๋žฌ๋‹ค... ๊ฐ•์˜๊ฐ€ ๋๋‚˜๊ณ  ๋ฆฌ์•กํŠธ ๊ณต๋ถ€๋„ ๋ฏธ๋ค„๋‘๊ณ  ์–ผ๋ ˆ๋ฒŒ๋ ˆ ์‹ ์ž… ํผ๋ธ”๋ฆฌ์…”๋กœ ์ทจ๋ฝ€ํ•ด์„œ ๋จน๊ณ ์‚ฌ๋Š” ์ง€๊ธˆ, ํšŒ์‚ฌ๋ฅผ ๋‹ค๋‹ˆ๋ฉด ๋‹ค๋‹์ˆ˜๋ก ๋ฆฌ์•กํŠธ ๊ธฐ์ˆ ์ž์— ๋Œ€ํ•œ ์ˆ˜์š”๋Š” ๋Š˜๊ณ ์žˆ๊ณ  ๊ธฐ์กด์˜ ์‚ฌ์ดํŠธ๋ฅผ ๋ฆฌ์•กํŠธํ™” ์‹œํ‚ค๋Š” ๊ณณ์ด ๋งŽ๋‹ค๋Š” ๊ฑธ ๋Š๋ผ๊ณ  ์žˆ๋‹ค.

๊ทธ๋ฆฌ๊ณ ...

๋ชธ ๋‹ด๊ณ  ์žˆ๋Š” ๊ณณ์—์„œ๋„, ๊ฐœ๋ฐœ๋‹จ์—์„œ ๋ฆฌ์•กํŠธ๋ฅผ ์‚ฌ์šฉํ•˜๊ธฐ ์‹œ์ž‘ํ–ˆ๊ณ , ํผ๋ธ”๋ฆฌ์‹ฑ๋‹จ์—์„œ๋„ ์›ํ™œํ•œ ๊ฐœ๋ฐœ์„ ์œ„ํ•ด ๋ฆฌ์•กํŠธํ™”๋ฅผ ํ•ด๋‚˜๊ฐ€์•ผํ•˜๋Š” ์‹œ์ ์ด ์˜ค๊ณ ์•ผ ๋ง์•˜๋‹ค.

์ด์   ์ •๋ง ๋”์ด์ƒ ๋ฏธ๋ฃฐ ์ˆ˜ ์—†์–ด! ๋ฆฌ์•กํŠธ๋กœ ํผ๋ธ”๋ฆฌ์‹ฑ์„ ํ•ด์•ผ๋งŒ ํ•œ๋‹ค!
๊ทธ๋ž˜์„œ ์‹œ์ž‘ํ•œ๋‹ค. ์˜ค๋Š˜๋ถ€ํ„ฐ ์—ด์‹ฌํžˆ TIL ๊ธฐ๋กํ•˜๊ธฐ

๐Ÿ‘ฉ๐Ÿปโ€๐Ÿ’ป ๋ฆฌ์•กํŠธ ์‹œ์ž‘ํ•˜๊ธฐ

์‹œ์ž‘์— ์•ž์„œ... npm์œผ๋กœ ๋ฆฌ์•กํŠธ ํ”„๋กœ์ ํŠธ๋ฅผ ์„ค์น˜ํ•˜๋Š” ๋ฐฉ๋ฒ•๋„ ์žˆ์ง€๋งŒ, ๊ฐ•์˜ ๋‚ด์šฉ์„ ํ† ๋Œ€๋กœ unpkg ๋งํฌ๋ฅผ HTML์— ํ˜ธ์ถœํ•˜์—ฌ ์ฝ”๋”ฉํ•˜๋Š” ๋ฐฉ์‹์œผ๋กœ ์ง„ํ–‰ํ•˜์˜€๋‹ค.

<script crossorigin src="https://unpkg.com/react@17/umd/react.development.js"></script>
<script crossorigin src="https://unpkg.com/react-dom@17/umd/react-dom.development.js"></script>
<body></body> ๋‚ด์—์„œ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ํ˜ธ์ถœ

DOM์— ๋‚ด์šฉ์„ ๊ทธ๋ ค์ฃผ๊ธฐ ์œ„ํ•œ ๋นˆ div ํƒœ๊ทธ๋ฅผ ๋งŒ๋“ค์–ด์ค€๋‹ค.

<div id="root"></div>

๐Ÿ““ Javascript ๋ฌธ๋ฒ•

๋ฆฌ์•กํŠธ ์šฉ๋ฒ•์„ ์‚ฌ์šฉํ•˜๊ธฐ ์ „์— ๋จผ์ € ์ผ๋ฐ˜์ ์ธ Vanilla Js ๋ฐฉ์‹์œผ๋กœ div ํƒœ๊ทธ์— Hello, World! ๋ผ๋Š” ๋ฌธ๊ตฌ๋ฅผ ์ง€๋‹Œ h1 ํƒœ๊ทธ๋ฅผ ๋„ฃ์–ด๋ณด๋„๋ก ํ•˜์ž.

const rootElement = document.querySelector("#root");
const element = document.createElement("h1");
element.textContent = "Hello, World!";
rootElement.appendChild(element);

์—ฌ๋Ÿฌ ๊ฐ€์ง€ ๋ฐฉ๋ฒ•์ด ์žˆ๊ฒ ์ง€๋งŒ, ๊ฐ•์˜ ๋‚ด์šฉ์„ ํ† ๋Œ€๋กœ ์ž‘์„ฑํ•ด๋ณด์•˜๋‹ค.
์œ„์˜ ์Šคํฌ๋ฆฝํŠธ๋ฅผ ํ’€์–ด์„œ ํ•ด์„ํ•ด๋ณด์ž๋ฉด,

#root ๋ผ๋Š” id๋ฅผ ๊ฐ€์ง„ div ํƒœ๊ทธ๋ฅผ rootElement ๋ผ๋Š” ๋ณ€์ˆ˜๋ช…์œผ๋กœ ์„ ์–ธํ•ด์ฃผ๊ณ , element๋ผ๋Š” ๋ณ€์ˆ˜๋ช…์œผ๋กœ h1 ํƒœ๊ทธ๋ฅผ ์ƒ์„ฑํ•ด์ค€๋‹ค.
h1ํƒœ๊ทธ์ธ element์— ํ…์ŠคํŠธ Hello, World! ๋ฅผ ๋„ฃ์–ด์ฃผ๊ณ , ๊ทธ h1(element์—) ํƒœ๊ทธ๋ฅผ div#root(rootElement)์— ๋„ฃ์–ด์ค€๋‹ค.

์ด๋Ÿฐ ๋‚ด์šฉ์ด ๋œ๋‹ค.

์ด์ œ DOM ๊ตฌ์กฐ๋ฅผ ์‚ดํŽด๋ณด๋ฉด ์•„๋ž˜์ฒ˜๋Ÿผ ๋ณ€ํ•œ ๊ฑธ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค.

<div id="root">
  <h1>Hello, World!</h1>
</div>

์ข‹์€ ์›นํŽ˜์ด์ง€ ์ฆ๊ฒจ์ฐพ๊ธฐ