728x90
๋ฐ˜์‘ํ˜•

์„ฑ๋Šฅ 2

React] Hook : useContext ๋‹จ์  ํ•ด๊ฒฐ

useContext 2023.06.23 - [Front-End/React] - React] Hook : useContext ์•ž ๊ฒŒ์‹œ๊ธ€์—์„œ ์–˜๊ธฐํ–ˆ๋˜ useContext์˜ ๋‹จ์ ์€ ๋ฆฌ๋ Œ๋”๋ง์ด ์ž์ฃผ ๋ฐœ์ƒํ•˜๊ฒŒ ๋œ๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์ด๋ฅผ ๊ฐœ์„ ํ•˜๊ณ ์ž ํ•ฉ๋‹ˆ๋‹ค. ์˜ˆ HTML ์‚ฝ์ž… ๋ฏธ๋ฆฌ๋ณด๊ธฐํ•  ์ˆ˜ ์—†๋Š” ์†Œ์Šค ์•ž์— ์˜ˆ๋ฅผ ๋“ค์—ˆ๋˜ ๋งˆํŠธ ์ฝ”๋“œ์—์„œ๋Š” 2์ธต ๊ณผ์ผ, 3์ธต ์Œ๋ฃŒ์ˆ˜๋กœ ๋ณ€๊ฒฝํ•˜์˜€์Šต๋‹ˆ๋‹ค/ ๋งŒ์•ฝ addDrink๋ฟ๋งŒ ์•„๋‹ˆ๋ผ addFruit๋ฅผ context์ถ”๊ฐ€ํ•˜์—ฌ ์‚ฌ์šฉํ•˜๊ณ , ์ด๋ฅผ Emart2F๋ผ๋Š” ์ปดํฌ๋„ŒํŠธ๋ฅผ ์ƒˆ๋กœ ๋งŒ๋“ค์–ด์„œ ์‚ฌ์šฉํ•œ๋‹ค๊ณ  ์ƒ๊ฐํ•˜๋ฉด, addFruit ํ•˜๊ฒŒ ๋  ๋•Œ Emart3F๋„ ๋ฆฌ๋ Œ๋”๋ง ๋˜๋Š” ํ˜„์ƒ์„ ๋ณผ ์ˆ˜ ์žˆ์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์ด๋ฅผ ํ•ด๊ฒฐํ•˜๋ ค๊ณ  ๋ช‡ ๊ฐ€์ง€ ์ˆ˜์ •ํ–ˆ์Šต๋‹ˆ๋‹ค. Emart.js import React, { useState, use..

Front-End/React 2023.06.26

React] Hook : useContext

useContext ๊ฐœ๋ฐœํ•˜๋‹ค ๋ณด๋ฉด props๋ฅผ ์—ฌ๋Ÿฌ ๋ฒˆ ๋„˜๊ธธ ๋•Œ๊ฐ€ ์ฐพ์•„์˜ค๊ณค ํ•ฉ๋‹ˆ๋‹ค. ์ฆ์กฐ๋ถ€๋ชจ → ์กฐ๋ถ€๋ชจ → ๋ถ€๋ชจ → ์ž์‹ → ... ์ด๋ ‡๊ฒŒ props๋ฅผ ๊ณ„์† ๋„˜๊ธฐ๋‹ค ๋ณด๋ฉด ์—„์ฒญ๋‚œ ๋…ธ๊ฐ€๋‹ค๋ฅผ ํ•ด์•ผ ๋  ์ˆ˜๋„ ์žˆ๊ณ , ์œ ์ง€๋ณด์ˆ˜ ์ธก๋ฉด, ๊ฐ€๋…์„ฑ ๋“ฑ ์•ˆ ์ข‹์€ ์ ์ด ๋งŽ์Šต๋‹ˆ๋‹ค. ์ด๋ฅผ ๊ฐœ์„ ํ•˜๊ธฐ ์œ„ํ•ด ์ „์—ญ์ ์œผ๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ๊ด€๋ฆฌํ•  ์ˆ˜ ์žˆ๋Š” Context๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค. Context๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ์ฆ์กฐ๋ถ€๋ชจ์—์„œ ์ž์‹๊นŒ์ง€ ํ•œ ๋ฒˆ์— ๋ฐ์ดํ„ฐ๋ฅผ ์ „๋‹ฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. (์‚ฌ์šฉํ•˜๊ธฐ์— ๋‹ค๋ฅธ hook๋ณด๋‹ค ๋ณต์žกํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.) createContext(initialValue) context๊ฐ์ฒด ์ƒ์„ฑ createContextํ˜ธ์ถœ ์‹œ, Provider์™€ Consumer ๋ฐ˜ํ™˜ Context.Provider ์ƒ์„ฑํ•œ context๋ฅผ ํ•˜์œ„ ์ปดํฌ๋„ŒํŠธ์— ์ „๋‹ฌ u..

Front-End/React 2023.06.23
728x90
๋ฐ˜์‘ํ˜•