[React.js] Redux (1)
μΉ΄ν
κ³ λ¦¬ : Development
νκ·Έ: development · react · Redux · State · Action · Reducer · Dispatch · ActionCreator · AsyncAction · Middleware · Store · StoreCreator · StoreEnhancer
νκ·Έ: development · react · Redux · State · Action · Reducer · Dispatch · ActionCreator · AsyncAction · Middleware · Store · StoreCreator · StoreEnhancer
Redux
JavaScript μ ν리μΌμ΄μ μ μν μν κ΄λ¦¬ λꡬ
React μ μ¬ νλ μμν¬ λ λ¬Όλ‘ Angular λ° μΌλ° JavaScriptμλ νΈν κ°λ₯ν¨
λ¨λ°©ν₯ λ°μ΄ν° νλ¦
μ¬μ©νλ μ΄μ
- μ ν리μΌμ΄μ μ΄ λ 볡μ‘ν΄μ§μ λ°λΌ λΒ λ§μ μνλ₯ΌΒ μλ°μ€ν¬λ¦½νΈ μ½λλ‘Β κ΄λ¦¬ν νμκ° μκΈ° λλ¬Έ
- μμΉ :
- μ ν리μΌμ΄μ μ λͺ¨λ Β μνλ νλμΒ μ μ₯μΒ μμ νλμ κ°μ²΄ νΈλ¦¬ κ΅¬μ‘°λ‘ μ μ₯
- μνλ μ½κΈ° μ μ©μ΄λ€
- λ³νλ μμ ν¨μλ‘ μμ±
- κ°λ¨ μ©μ΄ :
- State :
[getState()](https://ko.redux.js.org/api/store#getState)
μ μν΄ λ°νλλ νλμ μνκ° - Action : μνλ₯Ό λ³νμν€λ €λ μλλ₯Ό νννλ νλ²ν κ°μ²΄ (μ‘μ
μ μ΄λ€ ννμ μ‘μ
μ΄ νν΄μ§μ§ νμνλΒ
type
Β νλλ₯Ό κ°μ ΈμΌ ν¨) - Reducer : λμ κ°μ μν κ°μ²΄μ΄κ³ , λμ λ κ°μ μ‘μ (κ°μ₯ μ€μν κ°λ )
- Dispatch : μ‘μ μ΄λΒ λΉλκΈ° μ‘μ μ λ°λ ν¨μ
- ActionCreator : μ‘μ μ λ§λλ ν¨μ
- AsyncAction : Promiseλ Thunkμ κ°μ λΉλκΈ° κΈ°λ³ΈνμΌλ‘, 리λμμκ² μ§μ μ λ¬λμ§λ μμ§λ§, μμ μ΄ μλ£λλ©΄ μ‘μ μ 보λ
- Middleware : λμ€ν¨μΉ ν¨μλ₯Ό κ²°ν©ν΄μ μ λμ€ν¨μΉ ν¨μλ₯Ό λ°ννλ κ³ μ°¨ν¨μ. μ΄λ€μ μ’ μ’ Β λΉλκΈ° μ‘μ μ μ‘μ μΌλ‘ μ ν
- Store : μ ν리μΌμ΄μ μ μν νΈλ¦¬λ₯Ό κ°μ§κ³ μλ κ°μ²΄
- StoreCreator :
- StoreEnhancer : μ μ₯μ μμ°μλ₯Ό κ²°ν©νμ¬ κ°νλ μ μ μ₯μ μμ°μλ₯Ό λ°ννλ κ³ μ°¨ν¨μ
# 1. Redux νμΌ κ΅¬μ‘° μ
ν
=> ν΄λ ꡬ쑰λ κΉλνλ μΆκ°ν κ²½μ° μΈ κ°μ νμΌμ μμ ν΄μΌν¨
src
βββ store //storeμν νΈλ¦¬ κ°μ²΄
βββ store.ts //Redux μ μ₯μλ₯Ό λ§λλ ν¨μ
βββ (μνκ΄λ¦¬1) //ν΄λλͺ
βββ action.ts //μν λ³ν μν¬
βββ reducer.ts //λμ κ°μ μνμ κ°μ²΄ , λμ κ°μ μ‘μ
βββ actionType.ts //μ‘μ
νμ
μ λ£μ΄μ€
βββ (μνκ΄λ¦¬2)// ν΄λλͺ
βββ action.ts
βββ reducer.ts
βββ actionType.ts
# 2. Redux νμΌ κ΅¬μ‘° μ
ν
=> λͺ¨λν
src
βββ store //storeμν νΈλ¦¬ κ°μ²΄
βββ store.ts //Redux μ μ₯μλ₯Ό λ§λλ ν¨μ
βββ μνκ΄λ¦¬1.ts
βββ μνκ΄λ¦¬2.ts