๋ฆฌ์ํธ๋ ์์ ์๋ฐ์คํฌ๋ฆฝํธ์ด๊ณ , ์๋ฐ์คํฌ๋ฆฝํธ๋ฅผ ์ด์ฉํด ์ปดํฌ๋ํธ๋ค์ ๋ง๋ค์ด ๋๊ฐ๋ค.
๋ธ๋ผ์ฐ์ ๋ HTML, CSS, JavaScript๋ง์ ์ฝ์ ์ ์๋ค.
๋ฆฌ์ํธ๋ ๊ฒฐ๊ตญ ๋ฐ๋ฒจ์ ์ด์ฉํด ์๋ฐ์คํฌ๋ฆฝํธ๋ก ๋ณํ๋์ด์ง๊ณ ๋ณํ๋ ์๋ฐ์คํฌ๋ฆฝํธ๊ฐ HTML๊ณผ ์ฐ๊ฒฐ์์ผ์ฃผ๋ ๊ฒ์ด React-DOM์ด๋ค.
๋ฆฌ์ํธ ์๋ฆฌ๋จผํธ๋ ์ผ๋ฐ ๊ฐ์ฒด(plain object)์ด๋ฉฐ ์ฝ๊ฒ ์์ฑํ ์ ์๋ค.
React DOM์ ๋ฆฌ์ํธ ์๋ฆฌ๋จผํธ์ DOM์ด ์ผ์นํ๋๋ก DOM์ ์
๋ฐ์ดํธ ํด์ฃผ๋ ์ญํ ์ ํ๋ค.
<div id="root"></div>
๋ฆฌ์ํธ๋ก ๊ตฌํ๋ ์ดํ๋ฆฌ์ผ์ด์
์ ์ผ๋ฐ์ ์ผ๋ก ํ๋์ ๋ฃจํธ DOM ๋
ธ๋๊ฐ ์๋ค.
HTML ํ์ผ ์ด๋๊ฐ์ <div>
ํ๊ทธ๊ฐ ์๊ณ , ์ด ์์ ๋ชจ๋ ์๋ฆฌ๋จผํธ๋ฅผ React DOM์์ ๊ด๋ฆฌํด์ ๋ฃจํธ(root) DOM ๋
ธ๋๋ผ๊ณ ํ๋ค.
const element = <h1>Hello, world</h1>;
ReactDOM.render(element, document.getElementById('root'));
์ฌ๋ฌ ๋ฆฌ์ํธ ์๋ฆฌ๋จผํธ๋ฅผ ๋ฃจํธ DOM ๋ ธ๋์ ๋ ๋๋งํ๊ธฐ ์ํด์ ReactDOM์ render ํจ์๋ฅผ ์ฌ์ฉํ๋ค.
ReactDOM.render(element, container[, callback])
element
์ธ์์๋ ๋ฆฌ์ํธ์์ ์คํ๋ ํ์ผ(App)์ ๋ฃ์ด์ฃผ๊ณ , container
์ htmlํ์ผ์ ์์ฑ๋ id๊ฐ root์ธ ์์๋ฅผ ๋ฃ์ด์ค๋ค.
publicํด๋์ index.html ํ์ผ์ id๊ฐ root์ธ div ํ๊ทธ์ element์ธ์์ธ ๋ฆฌ์ํธ ์ปดํฌ๋ํธ๊ฐ ์ฐ๊ฒฐ๋๋ค.
๋ฆฌ์ํธ ์๋ฆฌ๋จผํธ๋ ๋ถ๋ณ๊ฐ์ฒด์ด๋ค.
๊ทธ๋ ๊ธฐ ๋๋ฌธ์ ์๋ฆฌ๋จผํธ๋ฅผ ์์ฑ ํ ์์์ด๋ ์์ฑ์ ๋ณ๊ฒฝํ ์ ์๋ค.
UI๋ฅผ ์
๋ฐ์ดํธ ํ๋ ๋ฐฉ๋ฒ์ ์๋ก์ด ์๋ฆฌ๋จผํธ๋ฅผ ์์ฑํ๊ณ ๋ค์ ReactDOM.render()๋ก ์ ๋ฌํ๋ ๋ฐฉ๋ฒ๋ฟ์ด๋ค.
์ค์ ๋ก ๋ฆฌ์ํธ ์ฑ์ ReactDOM.render()์ ํ ๋ฒ๋ง ํธ์ถํ๋ค.
React DOM์ ํด๋น ์๋ฆฌ๋จผํธ์ ๊ทธ ์์ ์๋ฆฌ๋จผํธ๋ฅผ ์ด์ ์ ์๋ฆฌ๋จผํธ์ ๋น๊ตํด DOM์ ์ํ๋ ์ํ๋ก ๋ณ๊ฒฝํ ๋ ํ์ํ ๊ฒฝ์ฐ์๋ง DOM์ ์ ๋ฐ์ดํธ ํ๋ค.
๋งค์ด๋ง๋ค UI๋ฅผ ๋ค์ ๊ทธ๋ฆฌ๋๋ก function component๋ก jsx๋ฅผ ์์ฑํ์ผ๋ ๋ณ๊ฒฝ๋๋ ์๊ฐ๋ง ์ ๋ฐ์ดํธ ๋๋ ๊ฒ์ ํ์ธํ ์ ์๋ค.