์ปดํฌ๋ํธ๋?
ํ๋์ ๊ธฐ๋ฅ ๊ตฌํ์ ์ํ ์ฌ๋ฌ ์ข ๋ฅ์ ์ฝ๋ ๋ฌถ์์ด๋ค.
// UI๋ฅผ ๊ตฌ์ฑํ๋ ํ์ ์์์ด๋ค.
// ์ปดํฌ๋ํธ๋ ๋ฆฌ์กํธ์ ์ฌ์ฅ์ด๋ค.
const Component = () => {
return (
<>
<div>{์ ์1}</div>
<div>{์ ์2}</div>
</>
)
};
์ปดํฌ๋ํธ๋ฅผ ์ฌ๋ฌ๊ฐ ๋ง๋ค๊ณ ์กฐํฉํด์ ์ดํ๋ฆฌ์ผ์ด์ ์ ๋ง๋ค ์ ์๋ค.
๋ชจ๋ ๋ฆฌ์กํธ ์ ํ๋ฆฌ์ผ์ด์ ์ ์ต์ ํ ๊ฐ์ ์ปดํฌ๋ํธ๋ฅผ ๊ฐ์ง๊ณ ์๊ณ , ์ด ์ปดํฌ๋ํธ๋ ์ ํ๋ฆฌ์ผ์ด์ ๋ด๋ถ์ ์ผ๋ก๋ ๊ทผ์(root)์ด ๋๋ ์ญํ ์ ํ๋ค.
์ด ์ต์์ ์ปดํฌ๋ํธ๋ ๊ทผ์์ ์ญํ ์ ํ๋ฏ๋ก ๋ค๋ฅธ ์์ ์ปดํฌ๋ํธ๋ฅผ ๊ฐ์ง ์ ์๋ค.
์ด ๊ณ์ธต์ ๊ตฌ์กฐ(hierarchy)๋ฅผ ํธ๋ฆฌ ๊ตฌ์กฐ๋ก ํ์ํํ ์ ์๋ค.
โฅ ์ ๊ทธ๋ฆผ์์ ์ต์์ ์ปดํฌ๋ํธ์ธ A๊ฐ root (๊ทผ์)์ด ๋๊ณ , ๋ค๋ฅธ ์์ ์ปดํฌ๋ํธ๋ฅผ ๊ฐ์ง ์ ์๋ค.
โฅ ์ด๋ฌํ ํธ๋ฆฌ ๊ตฌ์กฐ์์ ๋ณด๋ฏ์ด ๊ฐ๊ฐ์ ์ปดํฌ๋ํธ๋ ๊ฐ์ ๊ณ ์ ์ ๊ธฐ๋ฅ์ ๊ฐ์ง๊ณ ์์ผ๋ฉด์ UI์ ํ ๋ถ๋ถ์ ๋ด๋นํ๊ณ ์๋ค.
๋ ๋ฆฝ์ ์ธ ์ปดํฌ๋ํธ๋ค์ ์ฌ๋ฌ ๊ฐ ๋ง๋ค๊ณ ์ด๋ค์ ํ๋ฐ ๋ชจ์ ๋ณต์กํ UI๋ฅผ ๊ตฌ์ฑํ ์๋ ์๊ณ , ๋ ๋์๊ฐ ์ต์ข ์ ์ผ๋ก๋ ๋ณต์กํ ์ ํ๋ฆฌ์ผ์ด์ ๋ ๋ง๋ค ์ ์๋ค.
Create React App = ํฐ๋ฏธ๋ ์ ๋ ฅ ํ๋ฒ์ผ๋ก ๋ฐ๋ก ๋ฆฌ์กํธ ๊ฐ๋ฐ ์์ํ ์ ์๋ค!
Create React App์ด๋?
=> ๋ฆฌ์กํธ SPA(single page application)๋ฅผ ์ฝ๊ณ ๋น ๋ฅด๊ฒ ๊ฐ๋ฐํ ์ ์๋๋ก ๋ง๋ค์ด์ง ํด ์ฒด์ธ์ผ๋ก ๋ณต์กํ ๊ฐ๋ฐ ์ธํ ์ ์ฝ๊ฒ ํด์ฃผ๋ ๊ฒ์ด๋ค.
1. ํฐ๋ฏธ๋ ์คํ ํ, node js ๋ฒ์ ๊ณผ npm ๋ฒ์ ํ์ธํ๋ค.
git --version
โฅ git version ํ์ธ์ ํตํด git์ด ์ค์น๋์ด์๋์ง์ ๋ํ ์ฌ๋ถ๋ ์ ์ ์๋ค.
node --version
โฅ node js ๋ฒ์ ์ ํ์ธํ๋ฉด์ node js๊ฐ ์ค์น๋์ด์๋์ง ํ์ธํ ์ ์๋ค.
npm --version
Create React App๋ npx๋ผ๋ ๋ช ๋ น์ด๋ฅผ ์ฌ์ฉํ๋ค.
์ถ๊ฐํ์ต
2022.06.06 - [JavaScript] - nvm,npm, npx, yarn๋ฅผ ์์๋ณด์!
npx create-react-app react-random-proverb
์ด ๋ฌธ๊ตฌ๊ฐ ๋์ค๋ฉด, ์ฑ๊ณต์ ์ผ๋ก react-random-proverb๋ผ๋ ์๋ก์ด ๋ฆฌ์กํธ ํ๋ก์ ํธ๋ฅผ ๋ง๋ ๊ฑฐ๋ค!
package.json ํ์ผ์์ ์ฝ๋๋ฅผ ๋ณด๊ณ , ํฐ๋ฏธ๋์ ์๋ ๋ช ๋ น์ด๋ฅผ ์ ๋ ฅํ๋ค.
npm run start
๊ทธ๋ผ,
๐ ์๋ ํ์ด์ง๊ฐ ๋ํ๋๋ค.
์ฃผ์์ฌํญ!
์๋ฐ์คํฌ๋ฆฝํธ๋ก ๋ง๋ ํ๋ก์ ํธ๋ฅผ ์น ๋ธ๋ผ์ฐ์ ์์ ์ด๋์ฒ๋ผ vs code์์ ํฌ๋กฌ์ผ๋ก ์ด๊ธฐ๋ฅผ ํ๋ฉด ์น ํ์ด์ง ์์๋ ๋น ํ๋ฉด์ด ๋์จ๋ค.
๊ทธ ์ด์ ๋??
JSX๋ ๋ธ๋ผ์ฐ์ ๊ฐ ๋ฐ๋ก ์คํํ ์ ์๋ JS์ฝ๋๊ฐ ์๋๋ผ์ ๋ธ๋ผ์ฐ์ ๊ฐ ์ดํดํ ์ ์๋๋ก Babel์ ํตํด JS ์ฝ๋๋ก ๋ณํ์์ผ์ค์ผํ๋ค.
์ฆ, Babel ์์ ์ ํด์ผ ์น๋ธ๋ผ์ฐ์ ์์ ์ถ๋ ฅ์ด ๋๋ค.
ํด๊ฒฐ๋ฐฉ์!
ํฐ๋ฏธ๋์ npm run start ์ ๋ ฅํ๊ธฐ!