220106 : 나의 인턴 생활 DAY 7 - 너무도 큰 산, TypeScript + Redux + Redux-saga
To Do List⚡
- redux, redux-saga 공부
- I18N 조사
- storybook 조사
- 코드 리팩토링
Today was...🎯
React-Redux 기초 공부
- action
-
상태에 변화 필요할 때, 우리는 액션을 발생시킴
-
액션은 하나의 객체로 표현되며, type 필드를 필수적으로 가지고 있어야 함
-
그 외 값들은 커스텀 가능
{ type: "ADD_TODO", data: { id: 0, text: "리덕스 배우기" } }
-
- action creator
-
액션을 만드는 함수
-
컴포넌트에서 쉽게 액션을 발생시키기 위함
-
단순하게 파라미터 받아와서 액션 객체 형태로 만들어줌(return)
export function addTodo(data) { return { type: "ADD_TODO", data }; } // 화살표 함수로도 만들 수 있습니다. export const changeInput = text => ({ type: "CHANGE_INPUT", text });
-
- reducer
-
변화를 일으키는 함수
-
두 개의 파라미터 state, action을 받음
function reducer(state, action) { // 상태 업데이트 로직 return alteredState; } // 예시 function counter(state, action) { switch (action.type) { case 'INCREASE': return state + 1; case 'DECREASE': return state - 1; default: return state; } }
-
현재 상태와 전달 받은 액션을 토대로 새로운 상태를 반환
-
- store
- 앱 내에서 관리되는 모든 상태를 저장
- dispatch
- 스토어 내장 함수 중 하나
- 액션을 발생시키는 것
- action을 파라미터로 전달 (dispatch(action))
- 호출하면 스토어에서 리듀서 함수 실행시켜 해당 액션 처리 로직이 있다면 액션을 참고하여 새로운 상태를 만듦
- redux-saga를 사용한 API 호출 시 변수 삽입하는 법
-
리덕스는 늘 어렵고 복잡하다. 거기에 redux-saga까지 끼얹는다? 이건 못 참지... vscode가 못 참고 에러를 무한히 뱉어냈다...😂 한 곳 고치면 다른 한 곳에서 터지고... 난리도 아니었다. 오늘은 지금까지 한번도 제대로 써보지 못한 TypeScript + Redux + Redux-saga의 조합을 공부하고 시도해보며 시간을 보냈다. 결국 근무 시간 내에 다 해결하지 못한 채로 귀가하게 되었지만, 이 글을 쓰고 있는 새벽 세시 반까지 붙잡고 있어보니, 정말 놀랍게도 원하는 대로 작성하는 코드를 완성해낼 수 있었다! 너무나도 행복했다...이 맛에 코딩한다😂
-
하지만 아직도 정확한 원리를 속속들이 파악하고 있지는 않아, 출근해서 더 공부하고, 주석까지 달아서 push 해야겠다. 어쩌다보니 한 PR에 엄청 많은 task를 달아서 병합하게 되었는데, 얼른 마무리해서 새로운 브랜치에서 새로운 Issue로 개발하고 싶다.
Author And Source
이 문제에 관하여(220106 : 나의 인턴 생활 DAY 7 - 너무도 큰 산, TypeScript + Redux + Redux-saga), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@carmine/220106-나의-인턴-생활-DAY-7-너무도-큰-산-TypeScript-Redux-Redux-saga저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)