ν°μ€ν 리 λ·°
리λμ€λ?
μλ°μ€ν¬λ¦½νΈ μ΄ν리μΌμ΄μ μμ μνλ₯Ό ν¨μ¨μ μΌλ‘ κ΄λ¦¬ν μ μκ² λμμ£Όλ λꡬ
리μ‘νΈ μν κ΄λ¦¬λ?
- 리μ‘νΈμ λ°μ΄ν° νλ¦μ λ¨λ°©ν₯
- μμμ λΆλͺ¨μ μνλ₯Ό propsλ‘ μ λ¬λ°μ
- λΆλͺ¨μ μνκ°μ΄ λ³νλ©΄, μμμ λ³νλ μνμ λ§κ² data νΉμ UIλ₯Ό λ³κ²½ == 리λ λλ§
- -> λΆλͺ¨λ 리λ λλ§, μμλ 리λ λλ§
- μ¦, μ°λ¦¬λ μν κ΄λ¦¬μ μμ΄μ μν ꡬμ±μμλ₯Ό μ΅μννκΈ° μν΄ λ Έλ ₯ν΄μΌ ν¨.
TIP!- 리λλλ§ μν©
1. μμ μ stateκ° λ³κ²½
2. λΆλͺ¨ μ»΄ν¬λνΈμ 리λ λλ§
3. μμ μ΄ μ λ¬λ°μ propsκ° λ³κ²½
4. κ°μ μ λ°μ΄νΈ(forceUpdate) μ€νλ λ
리λμ€ μ μ¨μΌνλ?
리μ‘νΈλ‘ λ§λ SPAλ data νΉμ UIμ λ³νκ° λ³΅μ‘, λ€μν΄μ§λ κ²½μ°κ° λ§μ -> μ΄λ»κ² ν¨μ¨μ μΌλ‘ κ΄λ¦¬?
리λμ€λ₯Ό μ΄μ©νμ¬ λ³΅μ‘ν μνκ΄λ¦¬λ₯Ό ν¨μ¨μ μΌλ‘ ~
μμ) μλμ κ°μ λ μ΄μμμ λ€μ΄μ΄κ·Έλ¨ ννλ‘ λ°κΏ
β¬
λΆλͺ¨ μ»΄ν¬λνΈμ stateλ₯Ό λ°μ μμ μ»΄ν¬λνΈλ€μ κΉμ΄κ° 1μΈ΅λ°μ λμ§ μμ, μΆ©λΆν μ½κ² μνλ₯Ό μ λ¬νκ³ κ΄λ¦¬ κ°λ₯
ν
μ§
λ§
μλμ κ°μ΄ μμ μ»΄ν¬λνΈμ κΉμ΄κ° κΉμ΄μ§λ€λ©΄?
μλλ λ μ΄μμ -> λ€μ΄μ΄κ·Έλ¨ ννλ‘ λ³νν κ·Έλ¦Όμ΄λ€.
β¬
1) μν©1 - λΆλͺ¨ μ»΄ν¬λνΈμμ μ΅νμ μμ μ»΄ν¬λνΈκΉμ§ μνλ₯Ό μ λ¬ν΄μ£Όμ΄μΌνλ κ²½μ°
λΆλͺ¨-μμ-μμ-μ΅νμ μμ κ²½λ‘λ₯Ό ν΅ν΄ μν μ λ¬
λ¨μ : λΆλͺ¨~μ΅νμ μμ μ¬μ΄μ μλ μμ μ»΄ν¬λνΈλ€κ³Όλ 무κ΄ν μνλ³νμ΄λλΌλ, 무쑰건 κ±°μ³κ°μΌν¨
λΆλͺ¨-μμ κ΄κ³ μ»΄ν¬λνΈμ κΉμ΄κ° λ κΉμ΄μ§λ€λ©΄ μνκ΄λ¦¬ κ΅μ₯ν κΉλ€λ‘μμ§
2) μν©2 - μμ μ»΄ν¬λνΈμμ λ°μν μ΄λ²€νΈμ μν΄ λ€λ₯Έ 루νΈμ μλ μ»΄ν¬λνΈμ μνλ³νλ₯Ό λΆλ¬μΌμΌμΌμΌνλ μνμ λν κ΄λ¦¬λ κΉλ€λ‘λ€.
리λμ€λ μ΄λ° μν©μ μ΄λ»κ² ν΄κ²°?
λ€μ λ§νμ§λ§, 리λμ€λ μνκ΄λ¦¬λ₯Ό ν¨μ¨μ μΌλ‘ ν μ μλλ‘ λμμ£Όλ λꡬ
μμ κ°μ΄ μ€ν μ΄λ₯Ό μ¬μ©νμ¬, μνλ₯Ό μ»΄ν¬λνΈ κ΅¬μ‘° λ°κΉ₯μ λκ³ , μ€ν μ΄λΌλ μ€κ°μλ₯Ό ν΅ν΄ μνλ₯Ό μ λ°μ΄νΈνκ±°λ, μλ‘μ΄ μνλ₯Ό μ λ¬λ°λλ€!
μ¦, 리λμ€λ₯Ό μ¬μ©μ, μμ κ°μ΄ μνκ°μ μ»΄ν¬λνΈμ μ’ μμν€μ§ μκ³ , μνκ΄λ¦¬λ λ°κΉ₯μμ ν μ μλ€!
κ·Έλ λ€λ©΄, μ€ν μ΄μ μνλ³νμ νμλ₯Ό μ΄λ»κ² μΊμΉνκ³ , μ΄λ»κ² μλ‘μ΄ μνλ₯Ό μ λ¬νλκ°?
리λμ€μ μ λ°μ νλ¦
리λμ€ κ°λ
β Action
μν λ³νκ° νμν λ, μ‘μ μ λ°μμν΄
- νλμ κ°μ²΄λ‘ ννλ¨
- μλ₯Ό λ€μ΄, ν μΌ λͺ©λ‘ μΆκ°, μμ μ λν μ‘μ μ νμ μ μκ° μμ΄μΌν¨
- μ‘μ μ typeμ΄λΌλ νλλ₯Ό νμμ μΌλ‘ κ°μ§κ³ μμ΄μΌν¨
- μΆκ°μ μΌλ‘ νμν κ°μ²΄ μμλ€μ νμμ μν΄ μΆκ°λ¨
- μλμ data νλμ κ°λ€.
{
type: "ADD_TODO",
data: {
id: 0,
text: "redux"
}
}
β Action Creator
- μ‘μ μμ±ν¨μ : μ‘μ μ λ§λλ ν¨μ
- νλΌλ―Έν°λ₯Ό μ λ ₯λ°μ, μ‘μ μ κ°μ²΄ ννλ‘ λ§λ€μ΄μ€
- μλμ ν¨μλ dataλΌλ νλΌλ―Έν°λ₯Ό μ λ ₯λ°μ, μ‘μ μ κ°μ²΄ ννλ‘ λ°ννλ μν
function addTodo(data) {
return {
type: "ADD_TODO",
data
};
}
β Reducers
- λ³νλ₯Ό μΌμΌν€λ ν¨μ
- νλΌλ―Έν° μ λ ₯ : (μ΄μ μν, μ‘μ )
- λ°νκ° : λ‘μ§μ μν΄ λ³νλ μνκ° λ°ν
function reducer(state, action) {
...
return alteredState;
}
β Store
- μ»΄ν¬λνΈ μΈλΆμ μλ μν μ μ₯μ
- μ€ν μ΄ λ΄λΆμλ νμ¬ μνλ€, 리λμ, λͺ κ°μ§ λ΄μ₯ν¨μ ν¬ν¨
β Dispatch
- μ€ν μ΄μ λ΄μ₯ν¨μ μ€ νλ
- μ‘μ μ λ°μμν€λ μν
- λμ€ν¨μΉκ° μ‘μ μ λ°μμμΌ μ€ν μ΄μκ² μν λ³νκ° νμνλ€λ κ²μ μλ¦Ό
- νΈμΆλ μ‘μ μ 리λμ ν¨μλ₯Ό νΈμΆ
- μ‘μ μ λ§λ λ‘μ§λλ‘ μνλ₯Ό λ³νμν€λ κ³Όμ μ κ±°μΉ¨
β μ 리 - 리λμ€μ νλ¦
- μΆκ°, μμ μ κ°μ κ°κ°μ μ‘μ νμ μ μ
- μ‘μ ν¨μλ κ°κ°μ μ‘μ typeκ³Ό νλΌλ―Έν°λ₯Ό μ λ ₯λ°μ, μ‘μ μ κ°μ²΄μ§ν₯ ννλ‘ λ°ν
- μνλ³νκ° νμν΄μ§ λ, λμ€ν¨μΉκ° μ‘μ μ λ°μμμΌ μ€ν μ΄μκ² μλ¦Ό
- μ€ν μ΄λ‘ μ λ¬λ μ‘μ μ μ€ν μ΄μ 리λμ ν¨μ νΈμΆ
- νΈμΆλ 리λμ ν¨μλ (μ΄μ μν, μ‘μ
νμ
)μ νλΌλ―Έν°λ‘ μ λ¬λ°μ,
μ μλ λ‘μ§λλ‘ νμ¬ μνκ°μ λ³νμμΌ λ³νλ μνλ₯Ό λ°ν - λ°νλ μνλ μ€ν μ΄μ μ μ₯
μ΄ λ³΅μ‘ν κ³ μ μ μμ μ μΌλ‘ κ΄λ¦¬νλ €λ©΄, κ·μΉμ΄ νμνλ€!
리λμ€λ₯Ό μμ μ μΌλ‘ νμ©νκΈ° μν΄ μ§μΌμΌν 3κ°μ§ κ·μΉ
- λ¨μΌ μ€ν μ΄ μ¬μ© κΆμ₯
- 1 μ ν리μΌμ΄μ - 1 μ€ν μ΄ μ¬μ© κΆμ₯
- μ±μ λͺ¨λ stateλ ν μ₯μμ μ μ₯. μ¦, stateλ₯Ό κ°±μ νλ €κ³ μ¬κΈ°μ κΈ° μ°Ύμλ€λ νμ X
- μνλ μ½κΈ°μ μ©μΌλ‘
- μν λ³κ²½μ, concatκ³Ό κ°μ ν¨μλ₯Ό ν΅ν΄ μλ‘μ΄ κ°μ μ΄μ΄λΆμ¬ μμ±ν μλ‘μ΄ λ°°μ΄λ‘ κ΅μ²΄νμ¬ μ λ°μ΄νΈ
- λΆλ³μ± μ μ§
- λΆλ³μ±μ΄ μ μ§λ μ
λ°μ΄νΈλ 리λμ€μ λ³νκ°μ§λ°©λ²μΈ shallow equalityμ μ ν©ν μνλ³νμ΄κΈ° λλ¬Έμ
μ΄ μ λ°μ΄νΈ λ°©λ² μ¬μ©!
- λΆλ³μ±μ΄ μ μ§λ μ
λ°μ΄νΈλ 리λμ€μ λ³νκ°μ§λ°©λ²μΈ shallow equalityμ μ ν©ν μνλ³νμ΄κΈ° λλ¬Έμ
- μ‘μ μ ν΅ν΄μλ§ λ³κ²½ (λ°μ΄ν° λ³κ²½νλ μ μΌ λ°©λ²μ΄ μ‘μ ! μλνλ©΄ λΆλ³μ± μ μ§νκΈ° μν΄)
- Reducerλ μμν ν¨μ
- μμν ν¨μλ ?
- λμΌν μ λ ₯μ λ°μμ λ μΈμ λ λμΌν μΆλ ₯μ λ΄λ ν¨μ
- κ°μ ) μ°λ¦¬κ° ν΄λ¦μ ν΅ν΄ μ‘μ
λ°μμν€λ©΄ -> λ°°κ²½μ λλ€μΌλ‘ λ°λλ λ‘μ§ μμ±
- ν¨μμ λ‘μ§ λ΄μμ λλ€κ°μ μμ±ν΄μΌν¨
- λλ€κ° μμ±μ΄λ ?
- λ§€λ² μΆλ ₯μ΄ λ°λ == μμνμ§ λͺ»ν ν¨μ
- λ€νΈμν¬ μμ² μμ == μμνμ§ λͺ»ν λ‘μ§
- 리λμλ₯Ό μ΄μ©ν΄μλ§ λ§μ§λ§ stateκ° μ§μ (stateλ κ²°μ½ μ§μ μμ , λ³ν X)
- μμν ν¨μλ ?
λ§λ¬΄λ¦¬
리λμ€ λΏλ§ μλλΌ React Context API, MobX λ± μν κ΄λ¦¬λ₯Ό λμμ£Όλ λꡬλ€μ΄ λͺκ°μ§ λ μμ§λ§,
리μ‘νΈμ λ¨μ§μ²λΌ 리λμ€λ κ°μ₯ λ§μ΄ μ¬μ©νλ μνκ΄λ¦¬ λꡬ.
리μ‘νΈλ₯Ό μ¬μ©νλ€λ©΄ κΌ μ΅νμΌ ν λꡬ!!
μ°Έκ³ μ¬μ΄νΈ
velog.io/@youthfulhps/What-is-Redux-and-why-use-it
- Total
- Today
- Yesterday
- ꡬκΈ
- 리μ‘νΈ useEffect
- React Hook
- λ¨Έμ λ¬λ
- React DOM
- λ컀
- docker
- ꡬκΈν΄λΌμ°λνλ«νΌ
- ν΄λΌμ°λ
- μ»΄ν¬λνΈ
- React
- GCP
- 리μ‘νΈ setState
- 리μ‘νΈ
- 리μ‘νΈ λ λλ§
- ν μνλ‘μ°
- 리μ‘νΈ ν
- 리μ‘νΈ κΈ°μ΄
- 리μ‘νΈ μ»΄ν¬λνΈ
- Cloud
- 리μ‘νΈ κ³΅μλ¬Έμ
- ML
- 리μ‘νΈ state
- λ¨κΈ°μ§μ€κ³Όμ
- 리λμ€ store
- 리λμ€
- machine learning
- Docker&Kubernetes:μ€μ κ°μ΄λ-2022λ ν
- μνμ½λ© 리μ‘νΈ
μΌ | μ | ν | μ | λͺ© | κΈ | ν |
---|---|---|---|---|---|---|
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 |