์ผ | ์ | ํ | ์ | ๋ชฉ | ๊ธ | ํ |
---|---|---|---|---|---|---|
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 |
- ํฌ์ค
- ํ์
- PT
- ์ด๋ชฝ์ด์ค๊ณต๋ต
- ์ง์ฝ
- ํ ์ต๋ชฉํ
- ํฌ์ค๊ธฐ๋ก
- Git
- ๊ฐ๋ฐ์
- ๊นํ๋ธ
- ๋ฐ๋ํ๋กํ
- ๋น์ ๊ณต์
- ์ฝ๋ฉํ ์คํธ
- IT
- Front-End
- FE
- ๊ฒ์์ถ์ฒ
- react
- ์ด๋ชฝ์ด์ค
- ์ฑ์ฅ๊ธฐ๋ก
- ์ฝ๋ฉ์บ ํ
- ์ฝ๋ฉ
- ์ผํ
- ๊น
- ๋ค์ด์ดํธ
- ํ๋ก๊ทธ๋๋จธ์ค
- ๋ชจ๋ฐ์ผ๊ฒ์
- ํ๊ธฐ
- TiL
- GitHub
- Today
- Total
JOYLOG
[React JS] proxy, concurrently, redux, hook ๊ฐ๋ ์ ๋ฆฌ ๋ณธ๋ฌธ
[React JS] proxy, concurrently, redux, hook ๊ฐ๋ ์ ๋ฆฌ
์ฃผํ 2021. 7. 10. 12:08CORS ์ด์
- Cross-Origin Resource Sharing (๋ณด์์ ์ํ ์ ์ฑ )
- ์์ธ : request ๋ณด๋ด๋ client ์ response ๋ณด๋ด๋ server๊ฐ ๋ค๋ฅธ ํฌํธ๋ฅผ ๊ฐ์ง๊ณ ์๋ค๋ฉด, CORS ์ ์ฑ ์ ๋งํ์ง
- ํด๊ฒฐ : ๋ค์ํ ๋ฐฉ๋ฒ์ด ์๋๋ฐ, ๊ทธ ์ค ํ๋๋ Proxy ์ฌ์ฉ
Proxy?
: ์ ์ ์ ์ธํฐ๋ท ์ฌ์ด์ Proxy Server๊ฐ ์๋ค.
: IP๋ฅผ Proxy Server์์ ์์๋ก ๋ฐ๊ฟ, ์ธํฐ๋ท์์๋ ์ ๊ทผํ๋ ์ฌ๋์ IP๋ฅผ ๋ชจ๋ฅด๊ฒ ๋๋ค. ๋ฐ์ดํฐ ๋ํ ์์๋ก ๋ฐ๊ฟ ์ ์๋ค.
- ๋ฐฉํ๋ฒฝ ๊ธฐ๋ฅ 2. ์น ํํฐ ๊ธฐ๋ฅ 3. ์บ์ฌ ๋ฐ์ดํฐ, ๊ณต์ ๋ฐ์ดํฐ ์ ๊ณต ๊ธฐ๋ฅ
Proxy Server ์ฌ์ฉ ์ด์
- ์ธํฐ๋ท ์ฌ์ฉ ์ ์ด (ํ์ฌ, ๊ฐ์ ๋ฑ ....)
- ์บ์ฌ๋ฅผ ์ด์ฉํด ๋ ๋น ๋ฅธ ์ธํฐ๋ท ์ด์ฉ ์ ๊ณต
- ๋ณด์
- ์ด์ฉ ์ ํ๋ ์ฌ์ดํธ ์ ๊ทผ ๊ฐ๋ฅ
concurrently ํ๋ก ํธ, ๋ฐฑ์๋ฒ ํ ๋ฒ์ ํค๊ธฐ
concurrently ๋ผ์ด๋ธ๋ฌ๋ฆฌ ํ์ฉ
npm install concurrently --save
React JS๋ฅผ ์ํ CSS Framework ์ข ๋ฅ
: ๊ธฐ๋ฅ ๊ฐ๋ฐ์ ์ด์ ์ ๋ง์ถ๊ธฐ ์ํด CSS framework ๋ฅผ ์ฌ์ฉ
- Material UI 2. React Bootstrap 3. Semantic UI 4. Ant Design 5. Materialize ...
Redux?
๋จผ์ props์ state์ ๋ํ ์ดํด๊ฐ ํ์.
Props
: Properties์ ์ค์๋ง.
: ์ปดํฌ๋ํธ ๊ฐ์ ๋ถ๋ชจ ์ปดํฌ๋ํธ์์ ์์ ์ปดํฌ๋ํธ๋ก ๊ฐ์ ์ ๋ฌํ ์ ์์.
: ์ด ๊ฐ์ ์์ ์ปดํฌ๋ํธ ์์์ ๋ณํ ์ ์์. (immutable)
State
: ์ปดํฌ๋ํธ์ ๊ฐ์ด ๋ฐ๋ ์ ์์ผ๋ฉฐ (mutable), state๊ฐ ๋ณํ๋ฉด ๋ค์ ๋๋๋ง์ด ๋๋ค. (re-render)
: props์ ๋ค๋ฅด๊ฒ ๋ถ๋ชจ ์ปดํฌ๋ํธ์์ ์์ ์ปดํฌ๋ํธ๋ก ๋ฐ์ดํฐ๋ฅผ ๋ณด๋ด๋ ๊ฒ์ด ์๋, ์ปดํฌ๋ํธ ์์์ ๋ฐ์ดํฐ๋ฅผ ์ ๋ฌํ๋ค.
state = {message :'', attachFile : undefined, openMenu : false,};
Redux
: State๋ฅผ ๊ด๋ฆฌํด์ฃผ๋ ํด, ์ํ ๊ด๋ฆฌ ๋ผ์ด๋ธ๋ฌ๋ฆฌ
Redux ๋ฐ์ดํฐ Flow
React Component -> (Dispatch) -> Action -> REDUCER -> Store -> (Subscribe) -> ๋ค์ React Component ...
ํ ๋ฐฉํฅ์ผ๋ก ๋ฐ์ดํฐ๊ฐ ํ๋ฅธ๋ค. (strict undirectional data flow)
- Action : ์ด๋ค ์ผ์ด ์ผ์ด๋ฌ๋์ง ์ค๋ช ํ๋ ๊ฐ์ฒด
{type : 'LIKE\_ARTICLE', articeldId : 42} // 42๋ฒ ๊ฒ์๊ธ์ ์ข์์
- Reducer : Action์ ํตํด ์ผ์ด๋, state์ ๋ณํ๋ฅผ ์ค๋ช ํ๋ ๊ณณ. ์ด์ State์ action object ๋ฐ์ ํ์ next state์ return
(previousState, action) => nextState
- Store :์ดํ๋ฆฌ์ผ์ด์ ์ state์ ๊ฐ์ธ์ฃผ๋ ์ญํ . store ์์๋ ์ฌ๋ฌ๊ฐ์ง method๊ฐ ์์ด, ์ด๋ฅผ ์ด์ฉํด state๋ฅผ ๊ด๋ฆฌ.
Redux ์ฌ์ฉ์ ์ํ Dependeny ๋ค์ด
- redux
- react-redux
- redux-promis
- redux-thunk
npm install redux react-redux redux-promise redux-thunk --save (client์์ ์งํ)
Redux middleware ( redux-thunk, redux-promise)
: Redux๋ฅผ ์ ์ธ ์ ์๊ฒ ๋๋๋ค.
Redux Store์์ state์ ๊ด๋ฆฌํ๋๋ฐ, dispatch๋ฅผ ํตํด Action์์ ๋ณ๊ฒฝ์ํจ๋ค. ์ด Action์ ๊ฐ์ฒดํ์์ด์ฌ์ผ store๊ฐ ๋ฐ์ ์ ์์. ํ์ง๋ง Store์์ ํญ์ ๊ฐ์ฒด ํ์์ Action์ ๋ฐ๋ ๊ฒ์ด ์๋, Promise, Function ํํ๋ก ๋ฐ์ ๋๋ ์๋ค.
- redux-thunk : Dispatch์๊ฒ Function์ ๋ฐ๋ ๋ฐฉ๋ฒ์ ์๋ ค์ค.
- redux-promise : Dispatch์๊ฒ Promise๋ฅผ ๋ฐ๋ ๋ฐฉ๋ฒ์ ์๋ ค์ค.
Redux extension
Combine Reducer
: ์ฌ๋ฌ๊ฐ์ง state์ด ์์ผ๋ฉด, ๋ ๊ทธ์ ํด๋นํ๋ ์ฌ๋ฌ๊ฐ์ง reducer๊ฐ ์๋๋ฐ, combine reducer์ root reducer์์ ์ด๋ค์ ํ๋๋ก ํฉ์ณ์ค.
(Combine Reducer => Root Reducer)
React Component์ Hook
Class Component (ํด๋์ค ์ปดํฌ๋ํธ)
: Provide more features, longer code, more complex code, slower performance
: ๋ ๋ง์ ๊ธฐ๋ฅ ์ฌ์ฉ ๊ฐ๋ฅ
: ๊ธธ๊ณ ๋ณต์กํ ์ฝ๋
: ์ฑ๋ฅ์ ์ผ๋ก ๋๋ฆฐ ํผํฌ๋จผ์ค
Functional Component (ํจ์ํ ์ปดํฌ๋ํธ)
: Provide less features, shorter code, simpler code, faster performance
: ์ ์ ๊ธฐ๋ฅ ์ฌ์ฉ๊ฐ๋ฅ
: ๊ฐ๊ฒฐํ ์ฝ๋
: ์ฑ๋ฅ์ ์ผ๋ก ๋น ๋ฅธ ํผํฌ๋จผ์ค
Hook
Hook ์ ํตํด functional component์์๋ ๋น ๋ฅธ ํผํฌ๋จผ์ค์ ๋ค์ํ ๊ธฐ๋ฅ(state, lifecycle...) ์ฌ์ฉํ ์ ์๊ฒ ๋จ.