๐พ Props Drilling์ด๋?
Props Drilling์ ์์ ์ปดํฌ๋ํธ์ state๋ฅผ props๋ฅผ ํตํด ์ ๋ฌํ๊ณ ์ ํ๋ ์ปดํฌ๋ํธ๋ก ์ ๋ฌํ๊ธฐ ์ํด ๊ทธ ์ฌ์ด๋ props๋ฅผ ์ ๋ฌํ๋ ์ฉ๋๋ก๋ง ์ฐ์ด๋ ์ปดํฌ๋ํธ๋ค์ ๊ฑฐ์น๋ฉด์ ๋ฐ์ดํฐ๋ฅผ ์ ๋ฌํ๋ ํ์์ ์๋ฏธํ๋ค.
๐พ Props Drilling์ ๋ฌธ์ ์
• ์ฝ๋์ ๊ฐ๋ ์ฑ์ด ๋๋น ์ง๋ค.
• ์ฝ๋์ ์ ์ง๋ณด์๊ฐ ์ด๋ ต๊ฒ ๋๋ค.
• state ๋ณ๊ฒฝ ์ props ์ ๋ฌ ๊ณผ์ ์์ ๋ถํ์ํ๊ฒ ๊ด์ฌ๋ ์ปดํฌ๋ํธ๋ค ๋ํ ๋ฆฌ๋ ๋๋ง์ด ๋ฐ์ํ๋ค. → ์น ์ฑ๋ฅ์ ์ ์ํฅ์ ์ค ์ ์๋ค.
๐พ Props Drilling์ ๋ฐฉ์งํ๊ธฐ ์ํ ๋ฐฉ๋ฒ
1. ์ปดํฌ๋ํธ์ ๊ด๋ จ ์๋ state๋ ๋ ์ ์์ผ๋ฉด ๊ฐ๊น์ด ์ ์งํ๋ ๋ฐฉ๋ฒ
2. ์ํ๊ด๋ฆฌ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ฌ์ฉํ๋ ๋ฐฉ๋ฒ
→ ์ํ๊ด๋ฆฌ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ฌ์ฉํ๊ฒ ๋๋ฉด ์ ์ญ์ผ๋ก ๊ด๋ฆฌํ๋ ์ ์ฅ์์์ ์ง์ state๋ฅผ ๊บผ๋ด์ธ ์ ์๊ธฐ ๋๋ฌธ์ Props Drilling์ ๋ฐฉ์งํ๊ธฐ์ ๋งค์ฐ ํจ๊ณผ์ ์ด๋ค.
๐ฉ๐ป๐ป example. Props Drilling ์์์ ์ํ๊ด๋ฆฌ ๋ผ์ด๋ธ๋ฌ๋ฆฌ Redux ํ์ฉ ์์
example 1-1. props drilling
props๋ฅผ ์ ์ผ ๊น์ ์ปดํฌ๋ํธ๊น์ง ๋ด๋ ค์ฃผ๊ธฐ
โฌ๏ธ
example 1-2. Redux๋ฅผ ํ์ฉํด props drilling์ ๊ฐ์
์ํ๊ด๋ฆฌ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ฌ์ฉํ์ฌ props drilling ๊ฐ์
example 2-1. Props Drilling์ผ๋ก ์ธํ ๋ถํ์ํ ๋ฆฌ๋ ๋๋ง ์์
Child6์ ์๋ ๐ ๋ฒํผ์ ๋๋ฅด๋ฉด Child3์ ๋๋ํ๊ฐ ํ๋์ฉ ์ถ๊ฐ๋๋ ๊ฐ๋จํ ์ ํ๋ฆฌ์ผ์ด์
Child3, Child6์ด ํ๋์ ์ํ๋ฅผ ๊ณต์ ํ๊ธฐ ๋๋ฌธ์ ์ต์์ ์ปดํฌ๋ํธ์ธ App์์ ์ํ๋ฅผ ๊ด๋ฆฌํด์ผ ํ๊ณ , ์ด ๋๋ฌธ์ ์ํ๋ฅผ ๋ณ๊ฒฝํ ๋๋ง๋ค App ์ปดํฌ๋ํธ๊ฐ ๋ฆฌ๋ ๋๋ง ๋๋ฉด์ ๋ชจ๋ ์ปดํฌ๋ํธ๊ฐ ๋ฆฌ๋ ๋๋ง ๋๋ค. ๋ณ๊ฒฝ๋๋ ์ํ์ ์ฐ๊ด์ด ์๋ ์ปดํฌ๋ํธ๊น์ง ๋ถํ์ํ๊ฒ ๋ฆฌ๋ ๋๋ง ๋๋ ๊ฒ์ด๋ค. (Console์ ํตํด ํ์ธ ๊ฐ๋ฅ)
โฌ๏ธ
example 2-2. Redux์ ๋ฆฌ๋ ๋๋ง ์ต์ ํ
์ ์์ ์ ํ๋ฆฌ์ผ์ด์ ์์ Redux๋ฅผ ํ์ฉํ์ฌ ์ ์ญ ์ํ ๊ด๋ฆฌ๋ฅผ ํ ์ ์๊ฒ ๋ง๋ค์ ์๋ค. ์ํ์ ์ํฅ์ ๋ฐ์ ํ๋ฉด์ ๋ณ๊ฒฝํด์ผ ํ๋ ์ปดํฌ๋ํธ๋ง ๋ฆฌ๋ ๋๋ง ๋๋ค. (Console์ ํตํด ํ์ธ ๊ฐ๋ฅ)
์ถ์ฒ: ์ฝ๋์คํ ์ด์ธ SEB ์์ ์๋ฃ
โ๏ธ ๊ณต๋ถํ๋ฉฐ ์ ๋ฆฌํ ๋ด์ฉ์ ๋๋ค. ์๋ชป๋ ์ ๋ณด๋ ๋ ๊ณต์ ํ ๋ด์ฉ์ด ์์ผ๋ฉด ๋๊ธ๋ก ์๋ ค์ฃผ์ธ์!
์ฝ์ด์ฃผ์ ์ ๊ฐ์ฌํฉ๋๋ค ๐
'Frontend Dev > React' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
React์์ SVG ์ปดํฌ๋ํธ๋ก ๋ถ๋ฌ์ค๊ธฐ (Vite + TS ํ๊ฒฝ์์ SVG ํ์ผ ๊ฐ์ ธ์ค๊ธฐ feat. vite-plugin-svgr) (0) | 2024.06.11 |
---|---|
React Hooks - useEffect (0) | 2023.05.31 |
React์ ๋ฐ์ดํฐ ํ๋ฆ - React๋ก UI๋ฅผ ๊ตฌํํ๊ธฐ ์ํ ๋จ๊ณ (0) | 2023.05.30 |
React ๊ธฐ๋ณธ, props ์ฌ์ฉํ๊ธฐ (0) | 2023.05.23 |
React state์ ๊ฐ๋จํ๊ฒ ์์๋ณด๋ useState (0) | 2023.05.23 |