-
[React] ๋ฆฌ์กํธ(React.js)๋? ์ ์ฌ์ฉํ ๊น?Front-end/React 2021. 11. 27. 20:18๋ฐ์ํ
๋ฆฌ์กํธ(React) ๋?
๋ฆฌ์กํธ(React, React.js ๋๋ ReactJS)๋ ์๋ฐ์คํฌ๋ฆฝํธ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ํ๋๋ก์จ ์ฌ์ฉ์ ์ธํฐํ์ด์ค๋ฅผ ๋ง๋ค๊ธฐ ์ํด ์ฌ์ฉ๋๋ค. ํ์ด์ค๋ถ๊ณผ ๊ฐ๋ณ ๊ฐ๋ฐ์ ๋ฐ ๊ธฐ์ ๋ค ๊ณต๋์ฒด์ ์ํด ์ ์ง๋ณด์ ๋๋ค.
- ์ํค๋ฐฑ๊ณผ์ ๋ฆฌ์กํธ๋ฅผ ์ฌ์ฉํ ๊น?
JavaScript๋ฅผ ์ฌ์ฉํ์ฌ HTML๋ก ๊ตฌ์ฑํ UI๋ฅผ ์ ์ดํ๊ธฐ ์ํด์๋ ํน์ DOM์ ์ ํํ ๋ค, ํน์ ์ด๋ฒคํธ๊ฐ ๋ฐ์ํ๋ฉด ๋ณํ๋ฅผ ์ฃผ๋๋ก ์ค์ ํด์ผ ํ๋ค. ๋ฐ๋ผ์ ์ฌ์ฉ์์ ์ธํฐ๋์ ์ด ์์ฃผ ๋ฐ์ํ์ฌ ๋์ ์ผ๋ก UI๋ฅผ ๊ตฌํํด์ผ ํ๋ค๋ฉด ๊ด๋ฆฌํ๊ธฐ ํ๋ค๊ณ , ์น ์ ํ๋ฆฌ์ผ์ด์ ์ ๊ท๋ชจ๊ฐ ์ปค์ง์๋ก ์ฑ๋ฅ ์ ํ์ ์์ธ์ด ๋ ์ ์๋ค.
ํ์ง๋ง, ๋ฆฌ์กํธ๋ Virtual DOM์ ์ฌ์ฉํด์ ๋น ๋ฅธ ์ฑ๋ฅ์ ์ ์งํ๋๋ก ํ๋ค. Virtual DOM์ ๋ฉ๋ชจ๋ฆฌ์ ๊ฐ์์ผ๋ก ์กด์ฌํ๋ DOM์ผ๋ก JavaScript์ ๊ฐ์ฒด์ด๋ค. ๋ฐ๋ผ์ ์๋ ์ฑ๋ฅ์ด ๋ธ๋ผ์ฐ์ ์์ DOM์ ๋ณด์ฌ์ฃผ๋ ๊ฒ๋ณด๋ค ์๋๊ฐ ํจ์ฌ ๋น ๋ฅด๋ค. ์ด๋ ๋ธ๋ผ์ฐ์ ์ ๋ณด์ฌ์ง๊ณ ์๋ DOM๊ณผ ์ํ๊ฐ ์ ๋ฐ์ดํธ ๋์ด ์ ๋ฐ์ดํธ๊ฐ ํ์ํ ๊ณณ์ UI๋ฅผ ๋น๊ตํ์ฌ ์ค์ DOM์ ํจ์น์์ผ์ค๋ค.๋ฆฌ์กํธ์ ํน์ง
- ์ปดํฌ๋ํธ ๊ธฐ๋ฐ
์ปดํฌ๋ํธ(Component)๋ ์ฌ์ฌ์ฉ์ด ๊ฐ๋ฅํ ๊ฐ๊ฐ์ ๋ ๋ฆฝ๋ ๋ชจ๋์ ๋งํ๋ค. UI๋ฅผ ๊ฐ๋ฐํ๋ ๋ฐ ์์ด ์ปดํฌ๋ํธ๋ ๋ ๊ณ ๋ธ๋ก์ด๋ผ๊ณ ์๊ฐํ๋ฉด ์ฝ๋ค. ์ปดํฌ๋ํธ๋ค(๋ ๊ณ ๋ธ๋ก๋ค)์ ์กฐ๋ฆฝํด์ ํ๋์ ์์ฑํ์ ๋ง๋๋ ๊ฒ์ด๋ค. ์ฌ์ฌ์ฉ์ ํ ์ ์์ผ๋ฏ๋ก ์์ฐ์ฑ์ ํฅ์์ํค๊ณ , ์ ์ง๋ณด์๋ฅผ ์ฝ๊ฒ ํ ์ ์๋๋ก ๋์์ค๋ค.
- JSXconst element = <h1>Hello, world!</h1>;
JSX๋ JavaScript๋ฅผ ํ์ฅํ ๋ฌธ๋ฒ์ด๋ค. ์ด๋ ์๋ฐ์คํฌ๋ฆฝํธ์ HTML์ ๋์์ ์ฌ์ฉํ ์ ์๋ค. ๊ทธ๋ฌ๋ฏ๋ก ์ฝ๊ฒ ๋ฐฐ์ฐ๊ณ , ์ ์ ํ ์ ์๋ค.
๋ฐ์ํ