redux
Action
reducer์์ ์ ๋ ํ์ง ๋ง์์ผ ํ ์ผ
์ธ์๋ค์ ๋ณ๊ฒฝ(mutate)ํ๊ธฐ;
API ํธ์ถ์ด๋ ๋ผ์ฐํ ์ ํ๊ฐ์ ์ฌ์ด๋์ดํํธ๋ฅผ ์ผ์ผํค๊ธฐ;
Date.now()
๋Math.random()
๊ฐ์ด ์์ํ์ง ์์ ํจ์๋ฅผ ํธ์ถํ๊ธฐ.
Container
mapStateToProps
const mapStateToProps = state => {
return {
todos: getVisibleTodos(state.todos, state.visibilityFilter)
}
}
mapStateToProps
๋ผ ๋ถ๋ฆฌ๋ ํน๋ณํ ํจ์๋ฅผ ์ ์ํด์ผ ํฉ๋๋ค. ์ด ํจ์์๋ ํ์ฌ Redux ์คํ ์ด์ ์ํ๋ฅผ ์ด๋ป๊ฒ ๋ณํํ ์ง, ๊ทธ๋ฆฌ๊ณ ์ด๋ค ์์ฑ์ ํตํด presentational ์ปดํฌ๋ํธ๋ก ๋๊ฒจ์ค ์ง๋ฅผ ์์ ํ๋ฉด ๋ฉ๋๋ค.
mapDispatchToProps
const mapDispatchToProps = dispatch => {
return {
onTodoClick: id => {
dispatch(toggleTodo(id))
}
}
}
mapDispatchToProps()
ํจ์๋ฅผ ์ ์ํ๋ฉด ๋๋๋ฐ, ์ด ํจ์๋ dispatch()
๋ฉ์๋๋ฅผ ์ธ์๋ก ๋ฐ์ต๋๋ค. ์ด ํจ์๊ฐ ์ฝ๋ฐฑ์ผ๋ก ์ด๋ฃจ์ด์ง ์์ฑ๋ค์ ๋ฐํํ๋๋ก ๋ง๋ค์ด์ฃผ๋ฉด, presentational ์ปดํฌ๋ํธ์ ์ด ์์ฑ๋ค์ด ์ฃผ์
๋ฉ๋๋ค.
connect
import { connect } from 'react-redux';
const VisibleTodoList = connect(
mapStateToProps,
mapDispatchToProps
)(TodoList)
export default VisibleTodoList
export default connect(
mapStateToProps,
mapDispatchToProps
)(App)
App์ปดํฌ๋ํธ๋ฅผ connect๋ฅผ ๊ฐ์ผ๊ฒ์ด๋ค. ๋ฆฌ๋์ค ์ธ์๊ณผ ์ฐ๊ฒฐํด ์ฃผ๋๊ฒ์ด๋ค. App์ ๋๋ค๋ฅธ ์ปดํฌ๋ํธ๊ฐ ๋๊ฒ์ด๋ค.
jsonํ์ผ์
reject ๋ ํ๋ก๋ฏธ์ค๋ฅผ ์คํจํ๋๋ก
์ํ๋ฅผ ๊ฒฐ์ ํ๋๊ฒ ๋ฆฌ์กธ๋ธ ๋ฆฌ์ ํธ
์บ์น๋ ์์ชฝ๊ตฌ๋ฌธ..
connect ํด๋์ ์ ๋ค์ ๋ฆฌ๋์ค์ state๊ฐ ์ ๋ฐ์ดํธ ๋๋ฉด (๋ฆฌ๋์์์ ๋ฆฌํด์ ํด์ค๊ฒ์ด๋ค.) ๋ฆฌ๋์ค๋ผ๋ ์ ๊ฐ ์๋์ผ๋ก ์คํ ์ด๋ฅผ ์ ๋ฐ์ดํธ ํ๋ค. ์คํ ์ด๊ฐ ์ ๋ฐ์ดํธ ๋๋ฉด ์ปค๋ฅํธ ํด๋์ ์ ๋ค์ ๋ค์ ๋ ๋๋ง์ด ๋๋ค. ํ์์ ์๋ ๋ชจ๋ ์ ๋ค๋ ๋ค์ ๋ ๋๋ง ๋๋ค.
connect๋ hight oder compopnenet
mapStateToProps,
mapDispatchToProps
๋ฆฌ๋์ค์ธ์์ state๊ฐ ์ ๋ฐ์ดํธ ๋์์ ๋ ์ ๋ฐ์ดํธ ๋๋๋ก
props ๋ก ๋ด๋ ค๊ฐ๋๋ก ํ๋ค.
Dispatch ํ๋๋ก ํ๋ค.
Provider
redux์์ reducer๊ฐ ํธ์ถ์ด ๋๋ค. reducer๋ ๊ธฐ์กด์ state์ ๋ฐ์ดํฐ ์ํ / ํ์ฌ ๋ฐ์ํ action์ ๋ฐ๋๋ค. ๊ทธ ๋๊ฐ๋ฅผ ๋ฐ์์ ์๋กญ๊ฒ state๊ฐ ์ด๋ป๊ฒ ์์ ๋๋ฉด ๋๋์ง return์ ํด์ค๋ค. ์ปดํฌ๋ํธ๋ก ๊ฐ์ props๋ก ๋ฟ๋ ค์ง๋ค.
reducer์์ returnํด์ฃผ๋ state๊ฐ ์ปดํฌ๋ํธ๋ก ๋์ด๊ฐ์ผ ํ๋๋ฐ ๊ทธ๊ฒ์ ์๋์ผ๋ก ํด์ฃผ๋๊ฒ provider์ด๋ค.
combineReducers ๋ reducer๋ฅผ ํฉ์น๋ค.
state์ ๋ชจ์์ ์ ์ ์๋ค/
reducer
์์ํจ์์ด๋ค.
const todos = (state = [], action)
reducer๋ฅผ ๋ฐ๋ก ํธ์ถํด ์ฃผ์ง ์๋๋ค.
dispatch
connect๋ฅผ ํจ์ผ๋ก ์๋์ผ๋ก ์ธ์๋ก ๋ฐ์ ์ ์๋ค. ์ง๊ธ ๋ญ๊ฐ ์ก์ ์ด ๋ฐ์ํ๋ค๊ณ ๋งํด์ค๋ค.-> ๋ฆฌ๋์ค ์ธ์์ ์๋ ค์ฃผ๊ณ ์ฌ์ดํด์ ๋๋ฆฐ๋ค.
์ด ๊ฐ์ฒด๊ฐ ์ด๋ค ์ ๋ณด๋ฅผ ์ ์ฅํด์ผํ๋์ง ์๊ฐ์ ํด์ dispatch์ ๊ฐ์ฒด๋ฅผ ๋ฆฌํดํ๋ค. -> ๋ฆฌ๋์๋ฅผ ํธ์ถํ๋ค.(์์์ ํธ์ถํจ )
action type
reducer์์ ์ด๊ธฐ์คํ ์ดํธ๋ฅผ ์ ์ํด์ค๋ค.
Last updated
Was this helpful?