const { createStore } = require('redux');
const CHANGE_NAME = 'CHANGE_NAME';
const ADD_POST = 'ADD_POST';
//state
const initState = {
  name: '백지욱',
  posts: [],
};
//action
const changeName = (data) => {
  return {
    //action 객체
    type: CHANGE_NAME,
    payload: data,
  };
};
const addPost = (post) => {
  return {
    type: ADD_POST,
    payload: post,
  };
};
//reducer
const reducer = (prevState, action) => {
  switch (action.type) {
    case CHANGE_NAME:
      return {
        ...prevState,
        name: action.payload,
      };
    case ADD_POST:
      return {
        ...prevState,
        posts: [...prevState.posts, action.payload],
      };
    default:
      return prevState;
  }
};
//store
const store = createStore(reducer, initState);

console.log(store.getState());
store.dispatch(changeName('이창우'));
console.log(store.getState());
store.dispatch(addPost('2'));
store.dispatch(addPost('2'));
console.log(store.getState());

'학습' 카테고리의 다른 글

useHistory 사용법  (0) 2021.10.15
LCM(최소공배수), GCD( 최대공약수)  (0) 2021.10.07
REST API  (0) 2021.09.04
마크다운 작성법  (0) 2021.09.04
'이게 돼?' 시리즈(feat. map())  (0) 2021.08.29