React JS์ Context API์ Hook์ ์ด์ฉํ ๊ฐ๋จํ ์ผํ๋ชฐ ๊ธฐ๋ฅ ๊ตฌํ
React ํ๋ก์ ํธ ์ด์ฉ
- nvm : 1.1.9.
- npm : 6.14.12
- react : ^18.2.0
- react-dom : ^18.2.0
- ์ํ ๋ฐ์ดํฐ ๋ณด์ด๊ธฐ
- context, provider๋ก ๋ฐ์ดํฐ ๊ด๋ฆฌ
- ์ํ ์ผํ์นดํธ์ ๋ด๊ธฐ
- context, provider์์ useSteate์ hook์ด์ฉ
- ์ผํ์นดํธ์ ๋ด์ ์ํ ๋ณด์ด๊ธฐ
- addToShoppingCart : (provider) useCallback์ด์ฉ orders map ๋๋ฉด์ ์ํ return
- ์ผํ์นดํธ์ ๋ด๊ธด ์ํ ํ ๊ฐ ์ญ์ ํ๊ธฐ
- remove : (provider) useCallback์ด์ฉ setOrders์์ map๋๋ฉด์ ์๋ก์ด orders return
- ์ผํ์นดํธ์ ๋ด๊ธด ์ํ ์ ๋ถ ์ญ์ ํ๊ธฐ
- removeAll : (provider) useCallback์ด์ฉ setOrders([])์ด์ฉ, orders clear..(?)
- ์ผํ์นดํธ์ ๋ด๊ธด ์ํ ๊ฐ๊ฒฉ ํ์ธ
- good.price * order.quantity ๋ก ์ํ ์ข ๋ฅ๋ณ๋ก ๊ฐ๊ฒฉ ํ์ธ
- useMemo๋ฅผ ํตํด orders map๋๋ฉด์ total ๊ฐ๊ฒฉ return
- Checkout ๋ฒํผ
๊ด๋ จ React ๊ณต์ ๋ฌธ์ : Context
์ผํ๋ชฐ์ ๋ณด์ฌ์ง ์ํ ๋ฐ์ดํฐ๋ฅผ context๋ฅผ ์ด์ฉํ์ฌ component๋ค์๊ฒ ์ ๋ฌํ๋ ๋ฐฉ๋ฒ์ผ๋ก ๊ด๋ฆฌ
๊ด๋ จ React ๊ณต์ ๋ฌธ์ : Hook
์ํ ๋ฐ์ดํฐ(goods), ์ผํ์นดํธ ์ํ ๋ฐ์ดํฐ(order), ์ํ ๋ฐ์ดํฐ๋ฅผ ์ด์ฉํ๋ ๊ธฐ๋ฅ (์ผํ ์นดํธ์ ์ํ ๋ด๊ธฐ, ์ผํ ์นดํธ ์ํ ์ญ์ , ์ผํ์นดํธ ์ํ ์ ๋ถ ์ญ์ )์์ useContext()๋ฅผ ์ด์ฉํ Hook ์ฌ์ฉ