개발하고 싶은 초심자
220221 pure redux 코드 예제 본문
1. 터미널에서 mkdir로 새 폴더 생성
2. 폴더에 진입하여 npm init으로 package.json파일 만들기
3. npm install redux
4. vs code에 index.js파일 만들기
const { createStore } = require('redux');
// 초기 state를 정의한다
const initState = {
name: 'Haley',
posts: []
}
// action은 객체
// action creator 함수를 만들어서
// action 객체를 리턴하는 코드를 작성한다
const changeUsername = (data) => {
return { // acation
type: 'CHANGE_NAME',
data
}
}
const addPost = (post) => {
return {
type: 'ADD_POST',
post
}
}
// reducer
// 어떤 action 타입이 들어오는 지에 따라
// 새로운 state를 생성하는 순수함수
const reducer = (prevState, action) => {
switch(action.type) {
case 'CHANGE_NAME':
return {
...prevState,
name: action.data
}
case 'ADD_POST':
return {
...prevState,
posts: [prevState.posts, action.post]
}
default:
return prevState
}
}
// store
const store = createStore(reducer, initState);
console.log(ster.getState());
// dispatch로 action 전달
store.dispatch(changeUsername('Emily'));
console.log(store.getState());
store.dispatch(addPost('add New Post'));
console.log(store.getState());
// getState()
// Store의 메소드 중 하나
// 애플리케이션의 현재 상태 트리를 반환한다
// 스토어의 리듀서가 마지막으로 반환한 값과 동일하다
'기술개념정리(in Javascript)' 카테고리의 다른 글
Greedy Algorithm Coplit (0) | 2022.03.02 |
---|---|
220228 D+50 사용 권한, 환경 변수 (0) | 2022.02.28 |
220111 D+49 클라이언트 빌드와 배포 (0) | 2022.01.11 |
코드스테이츠 수강생들을 위한 과제 제출 팁 (0) | 2022.01.11 |
220106(07, 10) D+46(47, 48) React 상태 관리, Redux (0) | 2022.01.07 |
Comments