์ผ | ์ | ํ | ์ | ๋ชฉ | ๊ธ | ํ |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
Tags
- ๊ฒ์์ถ์ฒ
- ๋น์ ๊ณต์
- TiL
- Front-End
- ํ ์ต๋ชฉํ
- ๋ฐ๋ํ๋กํ
- ํฌ์ค
- ๊ฐ๋ฐ์
- ํ์
- ํ๋ก๊ทธ๋๋จธ์ค
- ์ด๋ชฝ์ด์ค
- ์ฝ๋ฉ์บ ํ
- ์ฝ๋ฉ
- ๊นํ๋ธ
- IT
- Git
- ํฌ์ค๊ธฐ๋ก
- ๋ชจ๋ฐ์ผ๊ฒ์
- PT
- ์ฑ์ฅ๊ธฐ๋ก
- ํ๊ธฐ
- react
- ์ด๋ชฝ์ด์ค๊ณต๋ต
- ๋ค์ด์ดํธ
- ์ผํ
- FE
- GitHub
- ๊น
- ์ง์ฝ
- ์ฝ๋ฉํ ์คํธ
Archives
- Today
- Total
JOYLOG
[ReactJS] React๋? (Virtual DOM, npm๊ณผ npx, ๊ตฌ์กฐ, React Router DOM, Data Flow) ๋ณธ๋ฌธ
D E V E L O P E R ๐ป/Front-end
[ReactJS] React๋? (Virtual DOM, npm๊ณผ npx, ๊ตฌ์กฐ, React Router DOM, Data Flow)
์ฃผํ 2021. 7. 8. 10:46
Recat JS
- facebook ์์ 2013 ๋ ์ ๋ฐํํ library
- ์ปดํฌ๋ํธ๋ก ์ด๋ฃจ์ด์ ธ ์์ด ์ฌ์ฌ์ฉ์ฑ์ด ๋ฐ์ด๋จ
- Virtual DOM
Real DOM? Virtual Dom? ์ด ๋ฌด์์ธ๊ฐ.
10๊ฐ์ ๋ฆฌ์คํธ๊ฐ ์์ ๋, ๊ทธ ์ค ํ๋์ ๋ฆฌ์คํธ๊ฐ Update ๋์๋ค.
- Real DOM : ์ ์ฒด ๋ฆฌ์คํธ๋ฅผ ๋ค์ Reload ํด์ผํ๋ฏ๋ก, ๋ง์ ๋น์ฉ ๋ฐ์
- Virtual DOM : ๋ฐ๋ ํ ๊ฐ์ง ์์ดํ ๋ง DOM์์ ๋ฐ๊ฟ ์ค.
Virtual Dom์ ์ด๋ป๊ฒ ํ ๊ฐ์ง ์์ดํ ๋ง DOM์์ ๋ฐ๊ฟ ์ ์์๊น?
- JSX ๋ฅผ ๋๋๋งํ๋ค. (Virtual DOM ์ด Update)
- ์ด์ Virtual DOM๊ณผ ๋น๊ตํด ๋ฐ๋ ๋ถ๋ถ์ ์ฐพ๋๋ค. ( = diffing)
- ๋ฐ๋ ๋ถ๋ถ๋ง Real DOM์์ ๋ฐ๊ฟ์ค๋ค.
npx ํ์ฉํ์ฌ React App ์์ฑ
webpack์ด๋ babel์ ๋ํ ์๋์ ์ค์ ์์ด, create-react-app Command๋ก ๋ฐ๋ก ๋ฆฌ์กํธ ์์ํ๊ธฐ
- Webpack : ์น ์ ์์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ, ํ๋ ์์ํฌ ๋ฑ์ ์ฌ์ฉํ๊ฒ ๋๋ฉด์ ๋ฌธ์ ๊ตฌ์กฐ๊ฐ ๋ณต์กํด์ง. ๋ง์ ๋ชจ๋๋ค์ ๋ฌถ์ด์ ๊ฐ๋จํ๊ฒ ๋ณด๋ด์ฃผ๋ ์ญํ .
- Babel : ์ต์ ์๋ฐ์คํฌ๋ฆฝํธ ๋ฌธ๋ฒ์ ์ง์ํ์ง ์๋ ๋ธ๋ผ์ฐ์ ๋ฅผ ์ํด ์ต์ ์๋ฐ์คํฌ๋ฆฝํธ ๋ฌธ๋ฒ์ ๊ตฌํ ๋ธ๋ผ์ฐ์ ์์๋ ๋ ์ ์๊ฒ ๋ณํ์์ผ์ค. (ES5 ์๋ฐ์คํฌ๋ฆฝํธ ๋ฌธ๋ฒ์ผ๋ก ๋ณํ)
- server ํด๋์ clientํด๋ ๊ตฌ๋ถ ํ, client ์์ ์งํ
npx create-react-app .
npm ( node package manager)
: ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ๋ด๋ ๋ ์ง์คํธ๋ฆฌ ์ญํ ์ ํ๋ค.
: node.js์์ ์ฌ์ฉํ๋ ๋ชจ๋์ ํจํค์ง๋ก ๋ง๋ค์ด npm์ ํตํด ๊ด๋ฆฌํ๊ณ ๋ฐฐํฌํ๊ณ ์์.
npx
: npm ์ ์ข ๋ ํธํ๊ฒ ์ฌ์ฉํ๊ธฐ ์ํด npm์์ ์ ๊ณตํด์ฃผ๋ ํ๋์ ๋๊ตฌ๋ก ์ดํด
: npx๋ npm ๋ ์ง์คํธ๋ฆฌ์ ์ฌ๋ผ๊ฐ ์๋ ํจํค์ง๋ฅผ ์ฝ๊ฒ ์ค์นํ๊ณ , ๊ด๋ฆฌํ ์ ์๋๋ก ๋์์ฃผ๋ CLI ๋๊ตฌ
- ์ฅ์ 1. Disk space ๋ญ๋นํ์ง ์์ ์ ์๋ค.
- ์ฅ์ 2. ํญ์ ์ต์ ๋ฒ์ ์ ์ฌ์ฉํ ์ ์๋ค.
Bolier Plate์ ํน์ฑํ๋ ๊ตฌ์กฐ
- _actions / _reducer : Redux๋ฅผ ์ํ ํด๋
- components/views : Page๋ฅผ ์ํ ํด๋
- components/views/Sections : Page์ ๊ด๋ จํ css ํ์ผ, componenet๋ฅผ ์ํ ํด๋
- App.js : Routing ๊ด๋ จ ์ผ์ ์ฒ๋ฆฌ
- Config.js : ํ๊ฒฝ ๋ณ์ ์ ํ๋ ๊ณณ
- hoc : Higher Order Component์ ์ฝ์
- component๋ฅผ ๊ฐ๋ function
- ์๋ฅผ ๋ค์ด Auth๋ผ๋ HOC๊ฐ ์์ ๋(์ฌ๋ฌ๊ฐ์ง ์ปดํฌ๋ํธ ๊ฐ์ง), ํ์ ์๊ฒฉ์ด ๋๋์ง ํ์ธํ ํ, ํ์ด์ง์ ๋ณด๋ด์ฃผ๊ฑฐ๋ ์๋๋ผ๋ฉด ๋ค๋ฅธ ํ์ด์ง๋ก ๋ณด๋ด์ฃผ๋ ์ญํ ์ ํ ์ ์๋ค.
- utils : ์ฌ๋ฌ๊ตฐ๋ฐ์์ ์ฐ์ผ ์ ์๋ ๊ฒ์ ์ด๊ณณ์ ๋ฃ์ด, ์ด๋์๋ ์ธ ์ ์๊ฒ๋ ํด์ค
tip :( ES7 React/Redux/GraphQL/React-Native snippets) VScode ํ์ฅ ๋ค์ด๋ฐ์ผ๋ฉด, 'rfce' ํตํด react ํจ์ํ ์ปดํฌ๋ํธ ๋ฐ๋ก ๋ถ๋ฌ์ฌ ์ ์๋ค. ('rcc'๋ ํด๋์ค ์ปดํฌ๋ํธ)
React Router DOM
- ํ์ด์ง ์ด๋ํ ๋, React Router DOM ํ์ฉ (https://reactrouter.com/web/example/basic)
- App.js ์์ ๋ผ์ฐํ ์ ๋ง๋ ๋ค. react-router-dom
npm install react-router-dom --save (client ์์)
DOM ์์ฑ๋ฒ 1.
<Route exact path="/">
<LandingPage/>
</Route>
DOM ์์ฑ๋ฒ 2.
<Route exact path="/" component = {LandingPage}/>
Data Flow
- server(nodeJS) <- client(ReactJS) : request
- server(nodeJS) -> DataBase : request์ ๋ํ ๋ฐ์ดํฐ ํ์ธ
- server(nodeJS) -> client(ReactJS) : response
ReactJS์์ ๋ณด๋ด๋ Request
AXIOS ์ฌ์ฉ (JQeury ์ฌ์ฉํ ๋ AJAX)
npm install axios --save
'D E V E L O P E R ๐ป > Front-end' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
Comments