๐ https://github.com/happypoulp/redux-tutorial/wiki
Tutorial 03 - simple reducer
์ด๋ป๊ฒ ์ ํ๋ฆฌ์ผ์ด์ ์ ์ํ๋ฅผ ๋ณด๊ดํ Redux ์ธ์คํด์ค๋ฅผ ์์ฑํ๋์ง ๋ฐฐ์ ๋ค. ์ด์ ์ด ์ํ๋ฅผ ๋ณ๊ฒฝํ๋ ๋ฆฌ๋์ ํจ์๋ค์ ์ง์คํด๋ณด์.
reducer VS store:
์์์ฐจ๋ ธ์ ์ง ๋ชจ๋ฅด๊ฒ ์ง๋ง, ์ฒ์ ์๊ฐํ ๋ ๋ณด์ฌ์ค flux ๋ค์ด์ด๊ทธ๋จ์์ Redux์ โReducerโ๊ฐ ์๋ โStoreโ ๊ฐ ์์๋ค. ์ด ๋๊ฐ๋ ์ด๋ป๊ฒ ๋ค๋ฅธ๊ฑธ๊น? ์๊ฐ๋ณด๋ค ์ฝ๋ค: Store๋ Reducer ์ ๋ค๋ฅด๊ฒ ๋ฐ์ดํฐ๋ฅผ ๋ณด๊ดํ๋ค. ๊ทธ๋์ flux์์ Store๋ ์ํ๋ฅผ ๋ณด๊ดํ๊ณ ์์ง๋ง Redux์์๋ ๋งค๋ฒ reduce๊ฐ ํธ์ถ๋๋ค. ์ํ๊ฐ ๊ฐฑ์ ๋์ด์ผํ ๋๋ง๋ค reduce์ ์ ๋ฌ๋๋ ๊ฒ์ด๋ค. ์ด๋ฐ์์ผ๋ก, Redux์ ์ํ๋ ์ํ๊ฐ ์๋ store(stateless store)๊ฐ ๋๊ณ ์ด๊ฑธ reducer ๋ผ๊ณ ๋ถ๋ฅธ๋ค.
์ด์ ์ ๋งํ๋๋ก, Redux ์ธ์คํด์ค๋ฅผ ์์ฑํ ๋ reducer ํจ์๋ฅผ ์ ๋ฌํด์ผํ๋ค.
import { createStore } from 'redux'
var store_0 = createStore(() => {})
โฆ ์ด๋ ๊ฒ Redux๋ ์ก์ ์ด ๋ฐ์ํ ๋๋ง๋ค ์ ํ๋ฆฌ์ผ์ด์ ์ํ์๋ํด ์ด ํจ์๋ฅผ ํธ์ถํ๊ฒ๋๋ค. reducer๋ฅผ createStore์ ์ ๋ฌํ๋ ๊ฒ 01_simple-action-creator.md ์์ ๋งํ์๋ Redux์์ ์ก์ โํธ๋ค๋ฌโ๋ฅผ ๋ฑ๋กํ๋ ๋ฐฉ๋ฒ์ด๋ค.
reducer ์ ๋ก๊ทธ๋ฅผ ์ฌ์ด๋ณด์.
var reducer = function (...args) {
console.log('Reducer was called with args', args)
}
var store_1 = createStore(reducer)
// Output: Reducer was called with args [ undefined, { type: '@@redux/INIT' } ]
์ด๋ค๊ฐ? ์ฐ๋ฆฌ๊ฐ ์๋ฌด๋ฐ ์ก์
์ dispatchํ์ง ์์๋๋ฐ๋ reducer๊ฐ ํธ์ถ๋์๋คโฆ
์ ํ๋ฆฌ์ผ์ด์
์ ์ํ๋ฅผ ์ด๊ธฐํํด์ผํ๊ธฐ ๋๋ฌธ์ด๋ค, ์ฌ์ค Redux๋ ์ด๊ธฐ ์ก์
์ dispatch ํ๋ค. ({ type: '@@redux/INIT' })
ํธ์ถ๋๊ฒ๋๋ฉด, reducer๋ ์ด๋ฐ ํ๋ผ๋ฏธํฐ๋ฅผ ๋ฐ๊ฒ๋๋๋ฐ: (state, action) ์ด๊ฑด ์ ํ๋ฆฌ์ผ์ด์ ์ด๊ธฐํ์์ ๋งค์ฐ ๋ ผ๋ฆฌ์ ์ด๋ค. ์ํ๋ ์์ง ์ด๊ธฐํ๋์ง ์์๊ธฐ ๋๋ฌธ์ โundefinedโ ์ด๋ค.
๊ทธ๋ ์ง๋ง Redux๊ฐ โinitโ ์ก์ ์ ๋ณด๋ด๊ณ ๋์ ์ ํ๋ฆฌ์ผ์ด์ ์ ์ํ๋ ๋ฌด์์ด๋ ๊น?
๋ค์: 04_get-state.md