DOM
-
- [Tailwind CSS] asChild ์์ฑ
asChild ์์ฑ๋ค์ด๊ฐ๋ฉฐ@asChild@ ์์ฑ์ ๋ํด ์ ๋ฆฌํด๋ณธ๋ค. asChild ์์ฑ๊ฐ๋ Radix UI์ ๊ฐ์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์์ ์ฌ์ฉ๋๋ ์์ฑ์ปดํฌ๋ํธ๊ฐ ๋ํ(Wrapping)๋ ์์ ์ปดํฌ๋ํธ์ ์คํ์ผ์ด๋ ๊ธฐ๋ฅ์ ๊ทธ๋๋ก ์ ์งํ๋ฉด์ ํน์ ๊ธฐ๋ฅ์ ์ ๊ณตํ๊ธฐ ์ํด ์ฌ์ฉ๋๋ค. ์๋ฏธ์์ ์์๋ฅผ ๊ทธ๋๋ก ์ฌ์ฉํ๋ค.๋ํ๋ ์ปดํฌ๋ํธ๊ฐ ์๋ก์ด DOM ๋ ธ๋๋ฅผ ์์ฑํ์ง ์๊ณ , ํด๋น ์์ ์์์ DOM์ ๊ทธ๋๋ก ์ฌ์ฉํ์ฌ ๊ธฐ๋ฅ๋ง ์ถ๊ฐํ๋ค.๋ถํ์ํ DOM ๋ ธ๋๊ฐ ์ถ๊ฐ๋์ง ์์ HTML ๊ตฌ์กฐ๋ฅผ ๊น๋ํ๊ฒ ์ ์งํ๊ณ , ์คํ์ผ์ด ๊นจ์ง์ง ์๋๋ก ๋ณด์ฅํ๋ค. ์ฌ์ฉ ์ Menu ⇒ @@์ @@์ ์์์ด์ง๋ง, @@๊ฐ ์๋ก์ด DOM ๋ ธ๋๋ฅผ ๋ง๋ค์ง ์๋๋ค.⇒ ๋์ @@ ์์ฒด๊ฐ @DropdownMenuTrigger@๋ก ์๋ํ๊ฒ ๋๋ค. ์ฌ์ฉํ๋ฉด ์ข์ ๊ฒฝ์ฐ์ถ๊ฐ..
2024.10.21 -
- [React.js] ํ ์คํธ ๋ฉ์์ง ๋์ฐ๊ธฐ ๊ฐ๋จ ์์ (ReactDOM.createPortal)
ํ ์คํธ ๋ฉ์์ง ๋์ฐ๊ธฐ ๊ฐ๋จ ์์ (ReactDOM.createPortal)๋ค์ด๊ฐ๋ฉฐ๋ฆฌ์กํธ(React.js)๋ฅผ ์ด์ฉํ์ฌ ๊ตฌํํด๋ณธ ํ ์คํธ(Toast) ๋ฉ์์ง ๋์ฐ๊ธฐ ๊ฐ๋จ ์์ ์ฝ๋๋ฅผ ์ฌ๋ ค๋ณธ๋ค.๊ธฐ๋ฅ์ ๊ตฌํํ๊ธฐ ์ํด @react-dom@ ํจํค์ง์ @createPortal@ ํจ์๋ฅผ ์ฌ์ฉํ์๋ค. ์ฝ๋ App.jsximport React from 'react';import Toast from './Toast';function App() { const [isToastVisible, setIsToastVisible] = React.useState(false); function handleEnrol() { setIsToastVisible(true); setTimeout(() => { setIs..
2024.05.21