일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
Tags
- 첫 코딩
- jest
- 비동기 테스트
- TDD방식으로 리액트 테스팅
- nest.js circular Dependency
- Testing-library/react
- 첫코딩
- 개발
- nest.js 순환 종속성
- React 테스트코드
- nest.js forwardRef
- mock api 사용법
- 리액트 테스트
- react jest
- React Testing Library
- mock api를 이용한 react 테스트
- 리액트 테스트 코드
- javascript 테스트
- CSS
- TodoList 테스트 코드
- HTML
- react native 무한스크롤
- FlatList 무한 스크롤
- ScrollView 무한 스크롤
- react
- JavaScript
- 프로젝트 배포하기
- react 테스트
- nest.js 순환 참조
- react testing library 비동기 테스트 사용법
Archives
- Today
- Total
성장을 위한 기록
Redux 란 ? redux-thunk, redux-saga 본문
이론적인 내용만 정리. 예시 코드는 하단 벨로퍼트 링크에 아주 잘 명시되어 있다.
redux는 자바스크립트 상태관리 라이브러리이다.
redux 본질은 node.js 모듈이다.
redux 기본 개념
- 단일 소스
- 동일한 데이터는 항상 같은 곳에서 가지고 나온다. (store)
- 즉 스토어라는 공간은 하나만 존재한다.
- 읽기 전용
- 액션이라는 객체를 통해서만 상태를 변경 할 수 있다.
- 순수 함수로만 변경이 가능하다.
- 즉 reducer는 순수 함수여야 한다.
store
스토어는 상태가 관리되는 하나만 존재하는 공간이다.
- 컴포넌트와 별개로 스토어라는 공간이 있어서 필요한 상태를 담는다.
- 필요한 컴포넌트에서만 스토어에 접근을 한다.
action
주문서라고 볼 수 있다.
- 액션은 앱에서 스토어에 운반할 데이터 다르게 보면 저장할 데이터라 볼 수 있다.
- 객체 형식으로 되어 있다.
reducer
- 액션이 직접 스토어에 저장할 수 없다. 따라서 reducer를 통해 전달이 가능하다.
- 액션에 데이터를 보고 스토어의 상태를 업데이트 하는 것이다.
- 액션을 reducer에 전달하기 위해서는
dispatch()
매소드를 이용한다.
redux-thunk
비동기 작업을 처리 할 때 사용하는 가장 기본적인 방법이다.
- action 함수는 여러 동작을 하는데 제약이 있다.
- 또한 원할 때 동작하는 함수를 만들 수 없다.
- 예시로 1초 뒤 실행하는 함수를 만들 수 없다.
- 따라서 비동기 통신처럼 기다리는 함수 또는 내부 여러가지 작업을 할 때 미들웨어를 사용한다.
redux-saga
redux-thunk 다음으로 많이 사용되는 라이브러리이다.
- 특정 action을 모니터링하고 있다가 action이 발생하면 이에 따라 특정 작업을 하는 방식으로 사용
- 특정 작업은 어떤 코드를 실행할 수도, 다른 액션을 디스패치 하는 것일 수도 있다.
- redux-thunk로 못하는 다양한 작업을 처리할 수 있다.
- 비동기 작업을 할 때 기존 요청을 취소할 수 있다
- 특정 작업을 할 수 있다
- 웹소켓에 경우 Channel 기능을 통해 효율적인 코드 관리가 가능하다.
- API 요청 실패 시 재 요청 작업을 할 수 있다.
참고
'FE (Front End) (구) > React' 카테고리의 다른 글
useInput 훅 만들기 with. typescript (0) | 2022.08.04 |
---|---|
React(리액트) redux에서 recoil로 recoil 기초 사용법 (0) | 2022.07.19 |
React(리액트) 로그인 이후 이전 페이지로 이동, 페이지 저장하기 (0) | 2022.07.05 |
react .env활용하여 API키 등 환경 변수 관리하기, firebase 예제 (0) | 2022.07.04 |
react(리액트) 특정 요소로 스크롤하기, 검색기능에서 자동 스크롤 (0) | 2022.07.01 |
Comments