Kimsora✨
article thumbnail
Published 2022. 11. 4. 00:18
Redux React
320x100
반응형

기존 리액트는 한 번의 변경으로 수많은 상태 변경 과정이 이뤄져야 하고 이 과정에서 무분별한 렌더링이 일어나게 된다 만약 컴포넌트가 100개 1000개가 된다고 가정하면 관리하기 어렵고   오류가 발생하는 원인이 되며 흐름 자체를 파악하여 어디서 오류가 났는지 조차도 모르는 경우가 생겨난다

0

Redux

리덕스(Redux)는 리액트에서 가장 사용률이 높은 상태관리 라이브러리이고  컴포넌트들의 상태 로직들이나 글로벌 상태 관리를 손쉽게 해줄 수 있다

0

state를 쉽게 관리할 수 있고 웹사이트의 상태를 어디서 관리할지 고민하지 않아되며 어떤 액션이 취해졌고, 어떤 데이터가 어떻게 변경되었는지 쉽게 알 수 있다

0

Action → Dispatch → Reducer → Store 순서로 데이터가 단방향으로 흐르는 방식이다

1. Action

상태에 변화가 필요할 때 Action을 발생시키게 되는데 이때 Action은 하나의 객체로 전달되며 Action 객체는 반드시 type 필드를 가지고 있어야 한다

{
  type: "ADD_NUM",
 
}

2. Action 생성함수

Action 생성함수는, Action을 만드는 함수이다

export const addNum = () => {
  type: "ADD_NUM",
  text
}

3. Reducer

Reducer 상태를 변화시키는 함수이며 Action을 만들어서 발생 시키면 Reducer가 현재 상태와 전달받은 액션 객체를

파라미터로 받아 온뒤 두 값을 참고하여 새로운 상태를 만들어 반환 해준다

Reducer 는 불변성을 유지하면서 데이터에 변화를 주어야 한다=>spread 연산자 사용

const counter = (state,action) => {
  switch(action.type) {
    case "ADD_NUM":
      return state + 1;
    case "MINUS_NUM":
      return state - 1;
    default:
      return state;
  }
}

4. Store

Store 상태와 Reducer를 포함하는 객체이며  앱에서 단 하나만 가질 수 있다

import { createStore } from 'redux';



// 파라미터에는 리듀서 함수를 넣어주어야 함
const store = createStore(reducer);

5. dispatch

dispatch는 액션을 발생시키는 스토어의 내장함수 중 하나이고 Action 객체를 파라미터로 넣어 호출한다

dispatch 호출되면 Store는 Reducer함수를 실행시켜 새로운 상태로 만들어준다

import { createStore } from 'redux';



// 파라미터에는 리듀서 함수를 넣어주어야 함
const store = createStore(reducer);

button.onclick = () => { 
   // dispatch 함수를 사용하여 액션을 스토어에게 전달
   store.dispatch(add(1));
}
728x90
반응형

'React' 카테고리의 다른 글

Fragment/Portal  (0) 2022.12.04
Custom Hooks와 코드 분할/React.lazy()와 Suspense  (0) 2022.11.29
useMemo/useCallback  (0) 2022.11.28
Virtual DOM/ React Diffing Algorithm  (0) 2022.11.28
React Props와State  (0) 2022.11.03
profile

Kimsora✨

@sorarar

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!

검색 태그

WH