[๐Ÿ’ป ์ฝ”๋“œ์Šคํ…Œ์ด์ธ  FE 44๊ธฐ]Redux ๊ณผ์ œ

JiEunยท2023๋…„ 4์›” 25์ผ
0
post-thumbnail

โœ”๏ธ ์‹œ์ž‘

์ €๋ฒˆ ํ•™์Šต ์‹œ๊ฐ„์— ์ด์–ด Redux ๊ณผ์ œ๋ฅผ ์ง„ํ–‰ํ•˜๋ฉด์„œ
์•Œ๊ฒŒ๋œ ์ ๊ณผ ์ค‘์š”ํ•˜๋‹ค ์ƒ๊ฐํ•˜๋Š” ์ ์„ ๊ฐ™์ด ์ž‘์„ฑํ•ด ์ฃผ์—ˆ๋‹ค.


๐Ÿ“ ์•Œ๊ฒŒ๋œ ์ 

  • Action์˜ type์€ ๋ณ€์ˆ˜๋กœ ๊ด€๋ฆฌํ•œ๋‹ค.
  • ์˜คํƒ€ ๋ฐฉ์ง€, ์ž๋™ ์™„์„ฑ, ์žฌ์‚ฌ์šฉ์„ฑ์— ์šฉ์ดํ•˜๋‹ค.
const ADD_TO_CART = "ADD_TO_CART";
const REMOVE_FROM_CART = "REMOVE_FROM_CART";
const SET_QUANTITY = "SET_QUANTITY";
  • ์™ธ๋ถ€์— ์‚ฌ์šฉํ•ด์•ผํ•  ์ฝ”๋“œ์— export๋ฅผ ์ž‘์„ฑํ•ด ์ฃผ๋ฉด ๋œ๋‹ค.
  • Action payload์— ์ธ์ž๋ฅผ ๋„ฃ์–ด์ค„ ์ˆ˜ ์žˆ๋‹ค.
export const removeFromCart = (itemId) => {
  return {
    type: REMOVE_FROM_CART,
    payload: {
      itemId
    }
  }
}
  • state๋ฅผ ์ˆ˜์ •ํ•  ๋• ์›๋ณธ์„ ํ›ผ์†ํ•˜์ง€ ์•Š์•„์•ผ ํ•œ๋‹ค.(๊นŠ์€ ๋ณต์‚ฌ๋กœ ์ˆ˜์ •ํ•˜๊ธฐ)
  • filter๋Š” ์ƒˆ๋กœ์šด ๋ฐฐ์—ด์„ ๋ฐ˜ํ™˜ํ•œ๋‹ค.
  • spread syntax, Object.assign์„ ์‚ฌ์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•๋„ ์žˆ๋‹ค.
const closed = state.cartItems.filter(el => el.itemId !== action.payload.itemId)
return {...state, cartItems: closed}
  • Reducerํ•จ์ˆ˜์˜ ์ฒซ๋ฒˆ์งธ ์ธ์ž๋Š” state๋ฅผ ์ฃผ๋Š”๋ฐ ๊ธฐ์กด ๊ฐ’์„ ์„ค์ •ํ•ด ์ฃผ์–ด์•ผ ํ•œ๋‹ค. (์•ˆ๊ทธ๋Ÿฌ๋ฉด undifined)
const itemReducer = (state = initialState, action) => {}
  • ์ด๋ฒคํŠธ ํ•ธ๋“ค๋Ÿฌ ์ธ์ž๋ฅผ ์ˆœ์„œ๋Œ€๋กœ ์ž‘์„ฑํ•  ํ•„์š”๋Š” ์—†๋‹ค.
  • ์ด๋ฒคํŠธ ๋ฐœ์ƒํ•˜๋Š” ๊ณณ์—์„œ dispatch๊ฐ€ ์‚ฌ์šฉ ๋œ๋‹ค.
export const setQuantity = (itemId, quantity) => {
  return {
    type: SET_QUANTITY,
    payload: {
      itemId,
      quantity
    }
  }
}
.
.
.
// Action payload ์ง€์ •ํ•œ ์ˆœ์„œ๋Œ€๋กœ ์ž‘์„ฑํ•ด ์ฃผ๋ฉด ๋œ๋‹ค.
const handleQuantityChange = (quantity, itemId) => {
dispatch(setQuantity(itemId, quantity))
}

โœ๏ธ ๋งˆ์น˜๋ฉฐ

Redux๋Š” ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋กœ React ๋ง๊ณ ๋„ JavaScript์—์„œ๋„ ์‚ฌ์šฉ์ด ๊ฐ€๋Šฅํ•˜๋‹ค.
React์—์„œ Redux๋ฅผ ์‚ฌ์šฉํ•ด ์ƒํƒœ๋ฅผ ๊ฐ„๋‹จํ•˜๊ฒŒ ๊ด€๋ฆฌํ•  ์ˆ˜ ์žˆ์—ˆ๋‹ค.

Redux๋Š” ์ƒํƒœ ๊ด€๋ฆฌ๊ฐ€ ์ž์ฃผ ๋ฐœ์ƒํ•˜๊ณ  props๋ฅผ ์ „๋‹ฌํ•˜๋Š” ์ปดํฌ๋„ŒํŠธ๊ฐ€ ๋งŽ์œผ๋ฉด
์‚ฌ์šฉํ•˜๊ธฐ ์ข‹์„ ๋“ฏ ์‹ถ๋‹ค.

profile
๐Ÿ’ป ํ”„๋ก ํŠธ์—”๋“œ๋ฅผ ๋ชฉํ‘œ๋กœ ์„ฑ์žฅ ์ค‘! (์•Œ์•„๋ดค๋˜ ๋‚ด์šฉ ๋“ฑ์„ ์ •๋ฆฌํ•˜๊ธฐ)

0๊ฐœ์˜ ๋Œ“๊ธ€