리덕스


[개요]

설치 : npm i redux react-redux

[리듀서]

state도 너무 많으면 store 를 여러 reducer로 쪼개는게 좋다 → 항상 루트 state, reducer는 존재해야한다는 전제는 있다

const initState = {
  isLoggedIn: false,
  user: {}
};

// 액션

const LOG_IN = "LOG_IN";
const LOG_OUT = "LOG_OUT";

export const loginAction = {
  type: LOG_IN,
  data: {
    nickname: "스티브"
  }
};

export const logoutAction = {
  type: LOG_OUT
};

// 리듀서

const reducer = (state = initState, action) => {
  switch (action.type) {
    case LOG_IN: {
      return {
        ...state,
        isLoggedIn: true,
        user: action.data
      };
    }
    case LOG_OUT: {
      return {
        ...state,
        isLoggedIn: false,
        user: null
      };
    }

    default:
      return state;

  }
};

export default reducer;