일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- dfs
- NCS수리자료해석
- 영단어암기
- 공기업공부
- 다이나믹프로그래밍
- BOJ
- TOEIC
- 알고리즘
- TOEIC문법
- 브루트포스
- 토익 영단어
- sqld
- 문제해결능력
- 토익시험준비
- 영어문장
- 데이터베이스
- 주어
- 영문법
- 자바스크립트
- 토익문법정리
- 자료해석
- 영단어
- 토익문법노트
- 너비우선탐색
- 매일매일NCS
- BFS
- 수리능력
- TOEIC Vocabulary
- 파이썬
- 토익단어
- Today
- Total
하나씩 알아가기
React Redux 정리 (Provider, connect) 본문
틀린 부분이 있을 경우, 지적해 주시면 감사하겠습니다.
이번에는 React Redux에서 많이 사용되는 함수와 컴포넌트에 대해 정리하겠습니다.
React Redux는 리액트에서 리덕스를 사용할 수 있게 해주는 패키지 입니다.
Redux는 독립적인 상태관리 라이브러리이지만 React에서 많이 사용되는 이미지입니다(아닐 수도 있습니다)
그렇기 때문에 React에서 Redux를 사용하는 효용이 많기 때문에 이렇게 패키지가 등장하지 않았나라고 생각합니다.
Provider
Provider는 우리의 App이 Redux store에 접근할 수 있도록 해줍니다.
import React from 'react'
import ReactDOM from 'react-dom'
import { Provider } from 'react-redux'
import store from './store'
import App from './App'
const rootElement = document.getElementById('root')
ReactDOM.render(
<Provider store={store}>
<App />
</Provider>,
rootElement
)
Provider 컴포넌트로 App을 감싸주고 store속성 값에 생성한 Redux store를 넣어주면 됩니다.
connect()
React Redux는 connect() 함수를 제공하여 우리의 컴포넌트를 store에 연결할 수 있도록 해줍니다.
connect는 HOC(Higher-Order Component) 패턴이라고 하며 HOC란 컴포넌트를 특정 함수로 감싸서 특정 값 또는 함수를 props로 받아와서 사용할 수 있게 해주는 패턴입니다.
import { connect } from 'react-redux'
import { increment, decrement, reset } from './actionCreators'
// const Counter = ...
const mapStateToProps = (state /*, ownProps*/) => {
return {
counter: state.counter,
}
}
const mapDispatchToProps = { increment, decrement, reset }
export default connect(mapStateToProps, mapDispatchToProps)(Counter)
connect의 인수로는 mapStateToProps과 mapDispatchToProps를 받습니다.
mapStateToProps는 컴포넌트에 props로 넣어줄 리덕스 스토어의 상태에 관련된 함수이고
mapDispatchToProps는 컴포넌트에 props로 넣어줄 액션을 디스패치 함수에 관련된 함수입니다.
참조 및 출처
react-redux.js.org/7.1/introduction/quick-start
'리액트' 카테고리의 다른 글
리액트에서의 Form(제어 컴포넌트와 비제어 컴포넌트) (0) | 2021.02.04 |
---|---|
[React Hook] useReducer(useState와 비교해보기) (0) | 2021.01.31 |
JSX 소개 (0) | 2021.01.28 |
가장 많이 사용되는 리덕스 미들웨어인 Redux-thunk는 무엇인가[리덕스 개념 정리 약간] (0) | 2021.01.20 |