Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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
- error: ENOENT: no such file or directory
- Pull
- button:focus cursor: pointer; outline: none;
- 백준
- 노마드 코더
- html 끝
- 백준 정리
- git 버전관리
- 백준 자바스크립트
- 크롬웹
- HTML
- 생활코딩 WEB2-JavaScript
- 생활코딩
- 코딩테스트
- nav태그
- 라매개발자
- max-width
- calc()
- border radius
- 드림코딩
- 할만한데?
- 나도코딩 파이썬
- WEB2-JavaScript
- li 태그
- :root
- 단계별로 풀어보기
- git
- margin 0 auto
- box-sizing: border-box
- 나도코딩
Archives
- Today
- Total
코딩응애의 개발블로그
코드스테이츠 블로깅 - Redux 본문
Redux
React 없이도 사용할 수 있는 상태 관리 라이브러리이다.
Redux에서는 Action → Dispatch → Reducer → Store 순서로 데이터가 단방향으로 흐르게 된다.
store
Store는 상태가 관리되는 오직 하나뿐인 저장소의 역할을 함. Redux 앱의 state가 저장되어 있는 공간이다.
Reducer
Reducer는 Dispatch에게서 전달받은 Action 객체의 type 값에 따라서 상태를 변경시키는 함수이다.
이 때, Reducer는 순수함수여야 함. 외부 요인으로 인해 기대한 값이 아닌 엉뚱한 값으로 상태가 변경되는 일이 없어야하기 때문
Action
Action은 말 그대로 어떤 액션을 취할 것인지 정의해 놓은 객체
const increase = () => {
return {
type: 'INCREASE'
}
}
보통 이런식으로 Action 객체를 생성하는 함수를 만들어 사용하는 경우가 많다.
이러한 함수를 액션 생성자(Action Creator)라고도 함.
Dispatch
Dispatch는 Reducer로 Action을 전달해주는 함수. Dispatch의 전달인자로 Action 객체가 전달된다.
Action 객체를 전달받은 Dispatch 함수는 Reducer를 호출
// Action 객체를 직접 작성하는 경우
dispatch( { type: '증가' } );
dispatch( { type: 'SET_NUMBER', payload: 5 } );
// 액션 생성자(Action Creator)를 사용하는 경우
dispatch( increase() );
dispatch( setNumber(5) );
위에 개념들을 연결시켜주기 위해서 Redux Hooks를 이용해야 하는데 useSelector(), useDispatch() 두가지가 있다
useDispatch()
useDispatch() 는 Action 객체를 Reducer로 전달해 주는 Dispatch 함수를 반환하는 메서드
import { useDispatch } from 'react-redux'
const dispatch = useDispatch()
dispatch( increase() )
이런식으로 사용함
useSelector()
useSelector()는 컴포넌트와 state를 연결하여 Redux의 state에 접근할 수 있게 해주는 메서드
import { useSelector } from 'react-redux'
const counter = useSelector(state => state)
'코드스테이츠(부트캠프)' 카테고리의 다른 글
Main-Project 하면서 배운 내용 (select box, useRef) (0) | 2022.11.17 |
---|---|
코드스테이츠 블로깅 - 웹표준 (0) | 2022.09.05 |
코드스테이츠 블로깅 - UI/UX 분석 및 개선 (0) | 2022.08.25 |
코플릿 풀면서 알게된 점 (버블 정렬) (0) | 2022.08.25 |
코플릿 - 동적 계획법(Dynamic Programming) (0) | 2022.08.24 |
Comments