Headless
Headless UI Component
์ปดํฌ๋ํธ์ ์คํ์ผ๊ณผ ๊ธฐ๋ฅ์ ๋ถ๋ฆฌํด์ ์ค๊ณํ๋ ๋ฐฉ์
์คํ์ผ๊ณผ ๊ธฐ๋ฅ์ ์๋ก ๋ค๋ฅธ ๊ด์ฌ์ฌ์ด๊ธฐ ๋๋ฌธ์ ๋ถ๋ฆฌํ๋๊ฒ์ด ์ ์ง๋ณด์์ ํ์ฅ์ฑ ์ธก๋ฉด์์ ์ ๋ฆฌํจ
์คํ์ผ๊ณผ ๊ธฐ๋ฅ์ด ํ ์ปดํฌ๋ํธ์ ์ฝํ ์์ผ๋ฉด, ์๋ก ์ํฅ์ ์ฃผ๋ ๊ฒฝ์ฐ๊ฐ ์๊ธฐ๊ธฐ ์ฌ์
์คํ์ผ์ ์์ฃผ ๋ฐ๋๊ณ , ๋ค์ํ ์ผ์ด์ค๋ฅผ ๊ณ ๋ คํด์ผ ํด์ ๊ธฐ๋ฅ๊ณผ ํจ๊ป ์ฎ์ฌ ์์ผ๋ฉด ์์ ์ด๋ ํ์ฅ์ด ์ด๋ ต๊ณ ๋ณต์กํด์ง
๋ ๊ด์ฌ์ฌ๊ฐ ๋ค์์ด๋ฉด ์ฝ๋์ ๊ฐ๋ ์ฑ๋ ๋จ์ด์ง๊ณ , ๋ณ๊ฒฝ ์ ์๋์น ์์ ์ฌ์ด๋ ์ดํํธ๋ฅผ ์ ๋ฐํ ์ ์์
๊ธฐ๋ฅ์ด ๋จ์ํ ์ํ ๋ฏน ์ปดํฌ๋ํธ๋ผ๋, ์ ๊ทผ์ฑ์ด๋ ์ธ์ธํ ๋์๊น์ง ์ ๋๋ก ๊ตฌํํ๋ ค๋ฉด ํ์ฐ์ ์ผ๋ก ์ผ์ ์์ค์ ๋ณด์ผ๋ฌํ๋ ์ดํธ ์ฝ๋๊ฐ ์๊ธฐ๊ฒ ๋จ
์คํ์ผ์ด ๋ค๋ฅด๋๋ผ๋ ๊ทผ๋ณธ์ ์ธ ๊ธฐ๋ฅ์ ๋์ผํ ๊ฒฝ์ฐ๊ฐ ๋ง์, ๊ธฐ๋ฅ๋ง ๋ถ๋ฆฌํด๋๋ฉด ๋ค์ํ ์คํ์ผ ์๊ตฌ์ฌํญ์ ์ ์ฐํ๊ฒ ๋์ ๊ฐ๋ฅ
์ธํฐํ์ด์ค์ ๊ธฐ๋ฅ์ด ๋ณ๊ฒฝ๋๋ ๊ฒฝ์ฐ ์ผ๊ด์ ์ผ๋ก ๋ฐ์ ๊ฐ๋ฅ
๋น์ทํ ์ปดํฌ๋ํธ์์ ์ฌ์ฌ์ฉ ๊ฐ๋ฅํด์ง (๋ฒํผ -> ๋ฒํผ, ํ ๊ธ, ์ค์์น)
๊ตฌํ ๋ฐฉ์
Hooks
๊ธฐ๋ฅ์ Hooks๋ก ๋ถ๋ฆฌํด์ ๊ด์ฌ์ฌ ๋ถ๋ฆฌ
Compound
ํ๋์ ๋์์ ์ํํ๋ ๋ณต์กํ UI๋ฅผ, ์ญํ ์ ๋ง๋ ์ฌ๋ฌ ๊ฐ์ ์์ ์ปดํฌ๋ํธ๋ก ๋๋๊ณ ์ธ๋ถ์์ ์ ์ฐํ๊ฒ ์กฐํฉํ๊ณ ์ ์ดํ ์ ์๋๋ก ๋ง๋ ํจํด
๋ด๋ถ์ ์ผ๋ก๋ Context API๋ฅผ ํ์ฉํด ์ํ์ ๋ก์ง์ ๊ณต์
์ฌ์ฉํ๋๊ณณ์์ ๊ฐ ์ญํ ์ ๋ง๋ ์ปดํฌ๋ํธ์ ํ์ํ props๋ง ์ ๋ฌํ๋ฉด ๋๊ธฐ ๋๋ฌธ์, ์ฝ๋์ ๊ฐ๋ ์ฑ๊ณผ ๋ช ํ์ฑ์ด ๋์์ง
Render prop (Function as Child)
prop์ผ๋ก React.JSX ์์๋ฅผ ๋ฐํํ๋ ํจ์๋ฅผ ์ ๋ฌํด์ ๋ ๋๋ง์ ์ฌ์ฉ์์๊ฒ ๋งก๊ธฐ๋ ๋ฐฉ์
render prop ํจ์์ ๊ฐ์ ์ธ์๋ก ์ ๋ฌํ๋ฉด, ๋ถ๋ชจ ์ปดํฌ๋ํธ๋ ํด๋น ๊ฐ์ ๊ธฐ๋ฐ์ผ๋ก ๋ ๋๋ง์ ์ ์ดํ ์ ์์
๊ถํ์ ๋ฐ๋ผ ์๋ก ๋ค๋ฅธ UI๋ฅผ ๋ณด์ฌ์ค์ผํ ๋ ์ฒ๋ผ, ์กฐ๊ฑด์ ๋ฐ๋ผ ๋ถ๊ธฐ ๋ ๋๋ง์ด ํ์ํ ์ํฉ์ ์ ์ฉ
Last updated