[TIL] Redux

Dev_minΒ·2019λ…„ 11μ›” 11일
0

TIL

λͺ©λ‘ 보기
31/61

πŸ‘‰ Redux

A predictable state container for Javascript apps

μƒνƒœκ΄€λ¦¬ 라이브러리. λ¦¬λ•μŠ€λ₯Ό μ‚¬μš©ν•˜λ©΄, μ—¬λŸ¬λΆ„μ΄ λ§Œλ“€κ²Œ 될 μ»΄ν¬λ„ŒνŠΈλ“€μ˜ μƒνƒœ κ΄€λ ¨ λ‘œμ§λ“€μ„ λ‹€λ₯Έ νŒŒμΌλ“€λ‘œ λΆ„λ¦¬μ‹œμΌœμ„œ λ”μš± 효율적으둜 관리 ν•  수 μžˆλ‹€. λ˜ν•œ, μ»΄ν¬λ„ŒνŠΈλΌλ¦¬ μƒνƒœλ₯Ό κ³΅μœ ν•˜κ²Œ 될 λ•Œ μ—¬λŸ¬ μ»΄ν¬λ„ŒνŠΈλ₯Ό κ±°μΉ˜μ§€ μ•Šκ³ λ„ μ†μ‰½κ²Œ μƒνƒœ 값을 전달 ν•  수 μžˆλ‹€.
πŸ”¨ λ¦¬λ•μŠ€μ˜ λ―Έλ“€μ›¨μ–΄λΌλŠ” κΈ°λŠ₯을 ν†΅ν•˜μ—¬ 비동기 μž‘μ—…, λ‘œκΉ… λ“±μ˜ ν™•μž₯적인 μž‘μ—…λ“€μ„ λ”μš± μ‰½κ²Œ ν•  수 도 있게 ν•΄μ€€λ‹€.
1. μ•‘μ…˜(Action)
: μƒνƒœμ— μ–΄λ– ν•œ λ³€ν™”κ°€ ν•„μš”ν•˜κ²Œ 될 λ•Œ, μ•‘μ…˜μ΄λž€ 것을 λ°œμƒμ‹œν‚¨λ‹€. μ΄λŠ”, ν•˜λ‚˜μ˜ 객체둜 ν‘œν˜„. μ•‘μ…˜ 객체의 ν˜•μ‹

{
  type: "TOGGLE_VALUE"
}

μ•‘μ…˜ κ°μ²΄λŠ” type ν•„λ“œλ₯Ό ν•„μˆ˜μ μœΌλ‘œ 가지고 μžˆμ–΄μ•Όν•˜κ³ , κ·Έ μ™Έμ˜ 값듀은 λ§ˆμŒλŒ€λ‘œ 넣을 수 μžˆλ‹€.

{
  type: "ADD_TODO",
  data: {
    id: 0,
    text: "λ¦¬λ•μŠ€ 배우기"
  }
}
  1. μ•‘μ…˜ μƒμ„±ν•¨μˆ˜(Action Creator)
    : μ•‘μ…˜ μƒμ„±ν•¨μˆ˜λŠ”, μ•‘μ…˜μ„ λ§Œλ“œλŠ” ν•¨μˆ˜. λ‹¨μˆœνžˆ νŒŒλΌλ―Έν„°λ₯Ό λ°›μ•„μ™€μ„œ μ•‘μ…˜ 객체 ν˜•νƒœλ‘œ λ§Œλ“€μ–΄ μ€€λ‹€.
    function addTodo(data) {
      return {
        type: "ADD_TODO",
        data
      };
    }
    // ν™”μ‚΄ν‘œ ν•¨μˆ˜λ‘œλ„ λ§Œλ“€ 수 μžˆμŠ΅λ‹ˆλ‹€.
    const changeInput = text => ({ 
      type: "CHANGE_INPUT",
      text
    });
  2. μŠ€ν† μ–΄(Store)
    : λ¦¬λ•μŠ€μ—μ„œλŠ” ν•œ μ• ν”Œλ¦¬μΌ€μ΄μ…˜ λ‹Ή ν•˜λ‚˜μ˜ μŠ€ν† μ–΄λ₯Ό λ§Œλ“€κ²Œ λœλ‹€. μŠ€ν† μ–΄ μ•ˆμ—λŠ”, ν˜„μž¬μ˜ μ•± μƒνƒœ, λ¦¬λ“€μ„œκ°€ λ“€μ–΄κ°€ 있고, μΆ”κ°€μ μœΌλ‘œ λͺ‡κ°€μ§€ λ‚΄μž₯ ν•¨μˆ˜λ“€μ΄ μžˆλ‹€.
  3. λ””μŠ€νŒ¨μΉ˜(Dispatch)
    : μŠ€ν† μ–΄μ˜ λ‚΄μž₯ν•¨μˆ˜ 쀑 ν•˜λ‚˜. λ””μŠ€νŒ¨μΉ˜λŠ”, μ•‘μ…˜μ„ λ°œμƒ μ‹œν‚€λŠ” 것이라고 이해. dispatchλΌλŠ” ν•¨μˆ˜μ—λŠ” μ•‘μ…˜μ„ νŒŒλΌλ―Έν„°λ‘œ 전달
  4. ꡬ독(subscribe)
    : subscribeν•¨μˆ˜λŠ”, ν•¨μˆ˜ ν˜•νƒœμ˜ 값을 νŒŒλΌλ―Έν„°λ‘œ λ°›μ•„μ˜¨λ‹€. subscribe ν•¨μˆ˜μ— νŠΉμ •ν•¨μˆ˜λ₯Ό 전달해주면, μ•‘μ…˜μ΄ λ””μŠ€νŒ¨μΉ˜ λ˜μ—ˆμ„ λ•Œ λ§ˆλ‹€ 전달해쀀 ν•¨μˆ˜κ°€ 호좜

μ°Έκ³  Blog
< https://velog.io/@velopert/Redux-1-%EC%86%8C%EA%B0%9C-%EB%B0%8F-%EA%B0%9C%EB%85%90%EC%A0%95%EB%A6%AC-zxjlta8ywt >
< https://kbennycc.blogspot.com/2019/02/0113-react-redux.html >
< https://medium.com/@ca3rot/%EC%95%84%EB%A7%88-%EC%9D%B4%EA%B2%8C-%EC%A0%9C%EC%9D%BC-%EC%9D%B4%ED%95%B4%ED%95%98%EA%B8%B0-%EC%89%AC%EC%9A%B8%EA%B1%B8%EC%9A%94-react-redux-%ED%94%8C%EB%A1%9C%EC%9A%B0%EC%9D%98-%EC%9D%B4%ED%95%B4-1585e911a0a6 >

profile
TIL record

0개의 λŒ“κΈ€