๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
๊นƒํ—ˆ๋ธŒ ๋งํฌ!
react

redux - dispatch๋ž€?

๐ŸŽŠ๐ŸŽŽ

Redux๋Š” React ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์—์„œ ์ „์—ญ ์ƒํƒœ ๊ด€๋ฆฌ๋ฅผ ์šฉ์ดํ•˜๊ฒŒ ํ•ด์ฃผ๋Š” ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์ž…๋‹ˆ๋‹ค. React ์ปดํฌ๋„ŒํŠธ๋“ค ์‚ฌ์ด์—์„œ ์ƒํƒœ๋ฅผ ๊ณต์œ ํ•˜๊ฑฐ๋‚˜ ๊ด€๋ฆฌํ•ด์•ผํ•  ๋•Œ Redux๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ํŽธ๋ฆฌํ•ฉ๋‹ˆ๋‹ค. Redux์˜ ๊ธฐ๋ณธ ๊ฐœ๋…์€ ๋‹จ์ผ ์Šคํ† ์–ด(Store)์— ์ƒํƒœ(State)๋ฅผ ์ €์žฅํ•˜๊ณ , ์•ก์…˜(Action)์ด๋ผ๋Š” ๊ฐ์ฒด๋ฅผ ํ†ตํ•ด ์ƒํƒœ๋ฅผ ์—…๋ฐ์ดํŠธํ•˜๋Š” ๋ฐฉ์‹์œผ๋กœ ๋™์ž‘ํ•ฉ๋‹ˆ๋‹ค.

 

 

dispatch๋Š” Redux ์Šคํ† ์–ด์— ์•ก์…˜์„ ๋ณด๋‚ด๋Š” ํ•จ์ˆ˜์ด๋ฉฐ, ์Šคํ† ์–ด๋Š” ํ•ด๋‹น ์•ก์…˜์„ ๋ฐ›์•„ ์ƒํƒœ๋ฅผ ๋ณ€๊ฒฝํ•˜๋Š” ์—ญํ• ์„ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค. ์ด๋ฅผ ํ†ตํ•ด ์ƒํƒœ ๊ด€๋ฆฌ๋ฅผ ์ค‘์•™ ์ง‘์ค‘ํ™”ํ•˜์—ฌ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ๋ฐ์ดํ„ฐ ํ๋ฆ„์„ ์˜ˆ์ธก ๊ฐ€๋Šฅํ•˜๊ณ  ์œ ์ง€ ๋ณด์ˆ˜๊ฐ€ ์šฉ์ดํ•˜๊ฒŒ ๋งŒ๋“ญ๋‹ˆ๋‹ค.

 

์Šคํฌ๋ฆฐ์ƒท 2023-07-10 ์˜คํ›„ 8.20.32โ€‹
import React from 'react'
import {useDispatch} from 'react-redux'

const Count2 = () =>{
const dispatch = useDispatch();

const handlerAdd = () =>{
dispatch({type: "LOGIN", payload : true})

const handlerRemove =()=>{
dispatch({type: "LOGOUT", payload : false})
}
return(
<div>
<button onClick={handlerAdd}>๋กœ๊ทธ์ธ</button>
<button onClick={handlerAdd}>๋กœ๊ทธ์ธ</button>
</div>
)
{handlerAdd}์™€ ๊ฐ™์ด ์ค‘๊ด„ํ˜ธ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ์ด์œ ๋Š” jsx์—์„œ javascriptํ‘œํ˜„์‹์„ ์‚ฝ์ž…ํ•˜๊ธฐ ์œ„ํ•จ์ด๋‹ค.

 

 

์—ฌ๊ธฐ์„œ ์‚ฌ์šฉ๋œ useSelector ํ•จ์ˆ˜๋Š” react hook ํ•จ์ˆ˜์ค‘ ํ•˜๋‚˜์ธ๋ฐ

useSelector ํ•จ์ˆ˜๋Š” ์Šคํ† ์–ด์˜ ์ƒํƒœ๋ฅผ ํ™•์ธํ•˜๊ณ  ํ•ด๋‹น ์ƒํƒœ์˜ ๊ฐ’์— ์ ‘๊ทผํ•˜๋„๋ก ํ•ด์ค€๋‹ค.

 

action->reducer->store->view