1. Create React App (CRA)
- React ํ๋ก์ ํธ๋ฅผ ์์ฝ๊ฒ ์์ฑํ ์ ์๋๋ก ๋์์ฃผ๋ ๋ณด์ผ๋ฌํ๋ ์ดํธ(Boilerplate)
- Facebook์์ ์ง์ ๋ง๋ค์ด์ ๊ด๋ฆฌํ๋ค.
- ํ๋ก์ ํธ ์์ฑ์ ํ์ํ ๋ค์ํ ๊ธฐ๋ฅ๋ค์ Command๋ก ์ ๊ณตํ๋ค.
1-1. Create React App (CRA)์ ์ฅ์
1) ๊ฐ๋ฐ์๊ฐ ์จ์ ํ React App ๊ฐ๋ฐ์ ์ง์คํ ์ ์๋๋ก ํ๋ค.
- ์๋์ ์ผ๋ก ๋ ์ค์ํ ์ฝ๋๋ ๋ ธ์ถ๋์ง ์๋๋ค.
- ๊ฐ๋ ฅํ Command๋ฅผ ์ง์ํ๋ค.
2) (๋๋ถ๋ถ์) ๋ชจ๋ ๋ธ๋ผ์ฐ์ ์์ ํด์๋ ์ ์๋๋ก transcompile ์ง์
- Babel ๊ธฐ๋ณธ ๋ด์ฅ
- ๋ฐฐํฌ ์ ์ฝ๋ ๋ฒ๋ค๋ง
- Webpack ๊ธฐ๋ณธ ๋ด์ฅ
2. Node.js / NPM ์๊ฐ
- Create React App์ผ๋ก React ํ๋ก์ ํธ ์์ ์ Node.js ๊ฐ๋ฐ ํ๊ฒฝ์ ์ ๊ณตํ๋ค.
- Node.js : Create React App์ผ๋ก ํ๋ก์ ํธ ์์ฑ ์ ๊ฐ๋ฐ ํ๊ฒฝ ๋ฐ ํ ์คํธ ์๋ฒ๋ก ์ด์ฉ๋๋ค.
- NPM : Node.js ํ๊ฒฝ์์ ์ฌ์ฉํ๋ ๊ฐ์ข ํจํค์ง๋ค์ ๊ด๋ฆฌํ๋ ์ ์ฅ์, React์ ๊ด๋ จ๋ ๋ชจ๋๋ค์ด NPM์์ ๋ฐฐํฌ๋๊ณ ์๋ค.
3. React ํ๋ก์ ํธ ์์ฑํด๋ณด๊ธฐ
npx create-react-app <๋๋ ํ ๋ฆฌ๋ช
>
cd <๋๋ ํ ๋ฆฌ๋ช
>
npm start
- npx : npm ํจํค์ง๋ฅผ 1ํ์ฑ์ผ๋ก ๋ด๋ ค ๋ฐ์ ์คํํ ๋ ์ฌ์ฉํ๋ ๋ช ๋ น์ด
3-1. ๋๋ ํ ๋ฆฌ ๊ตฌ์กฐ ์ดํด๋ณด๊ธฐ
1) ./node_modules/ : npm์ ์ด์ฉํด ์ค์นํ ํจํค์ง๋ค ๋ชจ์
2) ./public/ : ์ ์ ์ธ ํ์ผ๋ค์ ๋ชจ์ ๋๋ ๊ณณ
3) ./src/ : ๋ฆฌ์กํธ ๊ฐ๋ฐ์ ์ํ ํ์ผ๋ค์ ๋ชจ์ ๋๋ ๊ณณ
- public์ index.html์ด ์ต์ด ์คํ๋ ํ src์ index.js๊ฐ ์คํ๋๋ค.
4) ./.gitignore : Git์ ์ด์ฉํ ๊ฒฝ์ฐ ๋ถํ์ํ ํ์ผ์ ๋ฌด์ํ ์ ์๋๋ก ํ๋ ์ค์ ํ์ผ
5) ./package.json : ํ๋ก์ ํธ์ ๊ดํ ์ ๋ณด์ ์ฌ์ฉํ๋ ํจํค์ง๋ค์ ๋ช ์ธํ๋ ํ์ผ
6) ./README.md : ๋ด ํ๋ก์ ํธ์ ๊ดํ ์ค๋ช ์ ์์ฑํ๋ ํ์ผ
4. ๋ผ์ด๋ธ๋ฌ๋ฆฌ ์ค์น์ ๋ถ๋ฌ์ค๊ธฐ
npm install
npm install <ํจํค์ง๋ช
>
npm install <ํจํค์ง๋ช
>@<version>
npm install <Git ๋ ํฌ์งํ ๋ฆฌ ์ฃผ์>
๋ผ์ด๋ธ๋ฌ๋ฆฌ ์ค์น ํ package.json์ ์ค์นํ ๋ชจ๋๋ค์ด ์๋์ผ๋ก ์ ๋ฆฌ๋๋ค. package.json์ dependencies(์์กด์ฑ)๋ผ๋ ํค ์๋์ ์ค์นํ ํจํค์ง ๋ชฉ๋ก์ด ๋์ด๋๋ค.
ํจํค์ง ๋ฒ์ ๋ช ์๋ ^(์บ๋ฟ), <, <=, >, >= ๋ฑ์ ๊ธฐํธ๋ฅผ ์ด์ฉํด ๋ฒ์๋ฅผ ๋ํ๋ผ ์ ์๋ค.
์ค์นํ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ import๋ฅผ ํตํด ํ๋ก์ ํธ ๋ด์์ ๋ถ๋ฌ์ฌ ์ ์๋ค.
import "ํจํค์ง๋ช
"
import something from "ํจํค์ง๋ช
"
import { a, b } from "ํจํค์ง๋ช
"
import * as something from "ํจํค์ง๋ช
"
1) import "ํจํค์ง๋ช "
- CSS ํน์ import ํ๋ ๊ฒ ๋ง์ผ๋ก๋ ์ญํ ์ ํ๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ธ ๊ฒฝ์ฐ
- JS ํ์ผ์ ๊ฒฝ์ฐ์๋ ํ์ฅ์๋ฅผ ์๋ต ๊ฐ๋ฅํ์ง๋ง, ๊ทธ ์ธ์ ํ์ผ์ ๊ฒฝ์ฐ์๋ ํ์ฅ์๋ฅผ ์์ฑํด ์ฃผ์ด์ผ ํ๋ค.
- ex) import "./App.css"
2) import something from "ํจํค์ง๋ช "
- ๊ธฐ๋ณธ์ ์ผ๋ก ํจํค์ง๋ฅผ ๋ถ๋ฌ์ ํ์ฉํ ๋์๋ ํ ๋นํ ์ด๋ฆ์ ์์ฑํ๋ค.
3) import { a, b } from "ํจํค์ง๋ช "
- ํจํค์ง ๋ด์ ์ผ๋ถ ๋ฉ์๋๋ ๋ณ์๋ง ๊ฐ์ ธ์ฌ ๋๋ ๊ตฌ์กฐ๋ถํด๋ฅผ ํ์ฌ ๊ฐ์ ธ์ค๋ ๊ฒ์ด ํจ์จ์ ์ด๋ค.
4) import * as something from "ํจํค์ง๋ช "
- ํจํค์ง์ default๋ก export ๋๋ ๊ฐ์ฒด๊ฐ ์กด์ฌํ์ง ์์ ๊ฒฝ์ฐ * as ์ด๋ฆ
'elice > WIL' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[week_08] React ๊ธฐ์ด โ ก(2) Hooks (0) | 2022.03.02 |
---|---|
[week_08] React ๊ธฐ์ด โ ก (1) ์ด๋ฒคํธ (0) | 2022.03.02 |
[week_08] React ๊ธฐ์ด โ (3) Props์ State (0) | 2022.02.28 |
[week_08] React ๊ธฐ์ด โ (2) JSX์ ์ปดํฌ๋ํธ (0) | 2022.02.28 |
[week_08] React ๊ธฐ์ด โ (1) OT (0) | 2022.02.28 |