๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
๐Ÿ“š Study Note/React

react ์—์„œ redux ์‚ฌ์šฉํ•ด๋ณด๊ธฐ! (1)

by Jellll_y 2022. 9. 17.

์ด๋ฒˆ ํŒ€ ํ”„๋กœ์ ํŠธ์—์„œ redux์„ ์‚ฌ์šฉํ•  ์ผ์ด ์žˆ์–ด ๊ณต๋ถ€๋„ ํ•  ๊ฒธ ์ •๋ฆฌํ•ด๋ด…๋‹ˆ๋‹ค!

์šฐ์„  redux๋ฅผ ์‚ฌ์šฉํ•˜๊ธฐ ์œ„ํ•ด ์•Œ์•„์•ผ ํ•  4๊ฐ€์ง€ ๊ฐœ๋…์„ ๊ฐ„๋‹จํ•˜๊ฒŒ ์ •๋ฆฌํ•ด๋ณด๋ฉด

 

1. redux 

๋ณต์žกํ•œ ์ƒํƒœ๋ฅผ ๊ด€๋ฆฌํ•˜๋Š”๋ฐ ๋„์›€์ด ๋˜๋Š” ์ƒํƒœ ๊ด€๋ฆฌ ๋„๊ตฌ์ด๋ฉฐ ์˜ˆ์ธก์ด ๊ฐ€๋Šฅํ•˜๋‹ค.

์ค‘์•™ ๋ฐ์ดํ„ฐ ์ €์žฅ์†Œ (CDN)๋ฅผ ํ†ตํ•ด ์ „์ฒด ๋ฐ์ดํ„ฐ ์ €์žฅ์†Œ๋ฅผ ํ•œ ๊ณณ์—์„œ ๊ด€๋ฆฌํ•  ์ˆ˜ ์žˆ๋‹ค.

 

2. reducers 

์ƒํƒœ๋ฅผ ๊ด€๋ฆฌํ•˜๊ณ  ์ƒˆ๋กญ๊ฒŒ ์—…๋ฐ์ดํŠธ๋œ ์ƒํƒœ๋ฅผ ๋ฐ˜ํ™˜ํ•ด์ค€๋‹ค.

 

3. actions

actions๋Š” type, payload ๋‘ ๊ฐ€์ง€ ์†์„ฑ์„ ๊ฐ€์ง€๋ฉฐ

type๋Š”  ๊ณ ์œ  ์‹๋ณ„์ž

payload๋Š”  ๋””์ŠคํŒจ์น˜์— ๋Œ€ํ•œ ๋ฐ์ดํ„ฐ๊ฐ€ ํฌํ•จ๋˜์–ด ์žˆ๋‹ค.

 

4. dispatch

๋ฐ์ดํ„ฐ ์—…๋ฐ์ดํŠธ actions๋ฅผ ๋ณด๋‚ด๋Š” ๋ฐ ์‚ฌ์šฉ๋œ๋‹ค.

 

Redux ์‚ฌ์šฉ

1. react์—์„œ redux๋ฅผ ์‚ฌ์šฉํ•˜๊ธฐ ์œ„ํ•ด ๋จผ์ € ํ•„์š”ํ•œ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์„ค์น˜ํ•ด์ฃผ์–ด์•ผ ํ•œ๋‹ค.

npm install redux react-redux

 

2. store , reducers ์ƒ์„ฑ

reducers์—์„œ state๋ฅผ ๋ฆฌํ„ดํ•ด์ค˜์•ผ ํ•œ๋‹ค.

 

3. store์— ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ๊ฒŒ index ํŒŒ์ผ์—์„œ Provider๋กœ ๊ฐ์‹ธ์ค€๋‹ค.

 

4. useSelector๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ store์—์„œ ํŠน์ • state๋ฅผ ๊ฐ€์ ธ์˜จ๋‹ค.

 

 

store ์ƒํƒœ ์—…๋ฐ์ดํŠธ

dispatch๋ฅผ ํ†ตํ•ด actions๋ฅผ ์ „๋‹ฌํ•ด์ฃผ๋ฉด 

reducer์—์„œ action type์— ๋”ฐ๋ผ ์ƒํƒœ๋ฅผ ์—…๋ฐ์ดํŠธํ•ด์ค„ ์ˆ˜ ์žˆ๋‹ค. 

 

1. useDispatch ์‚ฌ์šฉ

์•„๋ž˜ ์‚ฌ์ง„๊ณผ ๊ฐ™์ด useDispatch๋ฅผ ํ†ตํ•ด dispatch๋ฅผ ์„ ์–ธํ•œ ๋’ค

์›ํ•˜๋Š” ์ด๋ฒคํŠธ์— dispatch๋ฅผ ํ†ตํ•ด type, payload (์—…๋ฐ์ดํŠธํ•  ๋ฐ์ดํ„ฐ)๋ฅผ ์ „๋‹ฌํ•ด์ค€๋‹ค.

 

2. reducer์—์„œ ํ˜„์žฌ ์ „๋‹ฌ๋ฐ›์€ action์„ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ๋Š”์ง€ ํŒ๋‹จํ•œ ๋’ค ์ฒ˜๋ฆฌํ•œ๋‹ค.

์ฒ˜๋ฆฌํ•  ์ˆ˜ ์—†๋‹ค๋ฉด ๊ธฐ์กด state๋ฅผ ๋ฆฌํ„ดํ•ด์ค€๋‹ค.

์ฃผ์˜ ์‚ฌํ•ญ์œผ๋กœ reducer์—์„œ๋Š” ๋™๊ธฐ ํ•จ์ˆ˜๋งŒ ์‚ฌ์šฉํ•ด์ค˜์•ผ ํ•˜๋ฉฐ,

์–ด๋–ค ์‚ฌ์ด๋“œ ์ดํŽ™ํŠธ๋„ ์ˆ˜ํ–‰๋˜๋ฉด ์•ˆ ๋œ๋‹ค.

์›๋ž˜ ์ƒํƒœ๋ฅผ ๋ณ€๊ฒฝํ•˜๋ฉด ์•ˆ ๋œ๋‹ค.

redux์— ๋Œ€ํ•œ ์™„์ „ ๊ธฐ์ดˆ๋งŒ ์ •๋ฆฌํ•ด๋ดค๋Š”๋ฐ... ์žฌ๋ฐŒ์—ˆ์Šต๋‹ˆ๋‹ค.!

์ด์ œ toolkit!! ๋งŽ์ด ๋“ค์–ด๋ณธ ์นœ๊ตฌ์ธ๋ฐ ๋ฐ”๋กœ ๊ณต๋ถ€ํ•ด๋ด์•ผ๊ฒ ์Šต๋‹ˆ๋‹ค..!!

 

์ฐธ์กฐ ์ž๋ฃŒ

https://www.youtube.com/watch?v=zrs7u6bdbUw