redux-tutorial/01_simple action creator

๐Ÿ‘‰ https://github.com/happypoulp/redux-tutorial/wiki

Tutorial 1 - simple action creator

์šฐ๋ฆฌ๋Š” ์ด์ „ ํŠœํ† ๋ฆฌ์–ผ์—์„œ action์— ๋Œ€ํ•ด์„œ ์–˜๊ธฐํ•ด๋ณด์•˜๋‹ค. ๊ทธ๋Ÿฐ๋ฐ โ€œaction creatorsโ€๋Š” ์ •ํ™•ํžˆ ๋ญ๊ณ  ๊ทธ๊ฒƒ๋“ค์€ โ€œactionsโ€์— ์–ด๋–ป๊ฒŒ ์—ฐ๊ฒฐ๋˜๋Š”๊ฑธ๊นŒ?

๊ทธ๊ฑด ์‚ฌ์‹ค ๋˜๊ฒŒ ์‰ฝ๊ณ  ๋ช‡ ์ค„์˜ ์ฝ”๋“œ๋งŒ์œผ๋กœ ์„ค๋ช…ํ•  ์ˆ˜ ์žˆ๋‹ค!

action creator ๋Š” ์‰ฝ๊ฒŒ๋งํ•ด ๊ทธ๋ƒฅ ํ•˜๋‚˜์˜ ํ•จ์ˆ˜๋‹คโ€ฆ

var actionCreator = function() {
    // ...action ์ƒ์„ฑํ•˜๊ณ  action ๋ฆฌํ„ด
    return {
        type: 'AN_ACTION'
    }
}

์ด๊ฒŒ ์ „๋ถ€๋‹ค.

๊ทธ์น˜๋งŒ ์ฃผ์˜ํ• ๊ฒƒ์ด action์˜ ํฌ๋งท์ด๋‹ค. flux์—์„œ์˜ ์ปจ๋ฒค์…˜ ์ค‘ ํ•˜๋‚˜์ด๋‹ค. action์€ โ€œtypeโ€ ํ”„๋กœํผํ‹ฐ๋ฅผ ๊ฐ–๊ณ ์žˆ๋Š”๋‹ค. ์ด๊ฒŒ ๋‚˜์ค‘์— action์„ ํ•ธ๋“ค๋งํ•œ๋‹ค. ๋ฌผ๋ก  ๋‹ค๋ฅธ ํ”„๋กœํผํ‹ฐ๋„ ๊ฐ€์งˆ ์ˆ˜ ์žˆ๊ณ  ์›ํ•˜๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ๋„˜๊ธธ ์ˆ˜ ์žˆ๋‹ค.

๋‚˜์ค‘์— action creator ๊ฐ€ action ๋ง๊ณ  ๋‹ค๋ฅธ๊ฒƒ์„ ๋ฆฌํ„ดํ•˜๋Š”๊ฒƒ์„ ํ•ด๋ณผ๊ฑฐ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด ํ•จ์ˆ˜๋ผ๋˜๊ฐ€. ์ด๊ฑด ๋น„๋™๊ธฐ action ํ•ธ๋“ค๋ง์— ์œ ์šฉํ•˜๋‹ค (07_dispatch-async-action-1.md).

์šฐ๋ฆฐ ์ด์ œ action creator๋ฅผ ํ˜ธ์ถœํ•  ์ˆ˜ ์žˆ๊ณ  ์˜ˆ์ƒํ•˜๋Š” action์„ ์–ป์„ ์ˆ˜ ์žˆ๋‹ค:

console.log(actionCreator())
// Output: { type: 'AN_ACTION' }

์ž‘๋™ํ•˜์ง€๋งŒ ์ด๊ฒŒ ๋‹ค๋‹คโ€ฆ ์šฐ๋ฆฌ๋Š” ์ด action์ด ์–ด๋”˜๊ฐ€๋กœ ๋ณด๋‚ด์ ธ์„œ ๊ด€์‹ฌ์„ ๊ฐ–๊ณ ์žˆ๋Š” ๋ˆ„๊ตฐ๊ฐ€๊ฐ€ ์•Œ๊ฒŒ๋˜๊ณ  ๊ทธ๊ฒƒ์— ๋งž์ถฐ์„œ ํ–‰๋™ํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•ด์•ผํ•œ๋‹ค. ์šฐ๋ฆฐ ์ด๊ฑธ โ€œaction ์„ Dispatch ํ•œ๋‹คโ€ ๊ณ  ๋งํ•œ๋‹ค.

action์„ dispatch ํ•˜๊ธฐ์œ„ํ•ด์„œ๋Š”โ€ฆ dispatch ํ•จ์ˆ˜๊ฐ€ ๊ทธ๋ฆฌ๊ณ  ๋ˆ„๊ตฐ๊ฐ€๊ฐ€ action์ด ๋ฐœ์ƒํ–ˆ๋‹ค๋Š”๊ฒƒ์„ ์•Œ๊ฒŒํ•˜๋ ค๋ฉด, ํ•ธ๋“ค๋Ÿฌ๋ฅผ ๋“ฑ๋กํ•  ๋ฐฉ๋ฒ•์ด ํ•„์š”ํ•˜๋‹ค. flux ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์—์„œ action์— ๋“ฑ๋กํ•  ๊ทธ๋Ÿฐ โ€œํ•ธ๋“ค๋Ÿฌโ€๋“ค์€ store ๋ผ๊ณ  ๋ถˆ๋ ค์ง€๊ณ  Redux์—์„œ๋Š” ์–ด๋–ป๊ฒŒ ๋ถˆ๋ ค์ง€๋Š”์ง€ ๋‹ค์Œ์— ์•Œ์•„๋ณด์ž.

์—ฌ๊ธฐ๊นŒ์ง€๊ฐ€ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ํ๋ฆ„์ด๋‹ค: ActionCreator -> Action

action๊ณผ action creator์— ๋Œ€ํ•ด์„œ๋Š” ์—ฌ๊ธฐ์„œ ๋” ์ž์„ธํžˆ ์•Œ ์ˆ˜ ์žˆ๋‹ค.

๋‹ค์Œ: 02_about-state-and-meet-redux.md