useImperativeHandle
์ ref๋ก ๋ ธ์ถ๋๋ ํธ๋ค์ ์ฌ์ฉ์๊ฐ ์ง์ ์ ์ํ ์ ์๊ฒ ํด์ฃผ๋ React ํ ์ด๋ค.
useImperativeHandle(ref, createHandle, dependencies?)
// createHandle: ์ธ์๊ฐ ์๊ณ ๋
ธ์ถํ๋ ค๋ ref ํธ๋ค์ ๋ฐํํ๋ ํจ์
undefined
๋ฅผ ๋ฐํํ๋ค. (return X)Modal
์ปดํฌ๋ํธ์์ {open, close}
์ ๊ฐ์ ๋ช
๋ นํ ํธ๋ค๋ก ๋
ธ์ถํ๋ ๋์ <Modal isOpen={isOpen} />
๊ณผ ๊ฐ์ isOpen
prop์ ๊ถ์ฅํ๋ค. ์ด๋ก์จ ์ฝ๋๊ฐ ๋ ๊ฐ๊ฒฐํ๊ณ ์์ธก ๊ฐ๋ฅํ๋ฉฐ, ์ปดํฌ๋ํธ์ ๋
๋ฆฝ์ฑ๊ณผ ์ฌ์ฌ์ฉ์ฑ์ด ํฅ์๋๋ค. Effect๋ฅผ ์ฌ์ฉํ๋ฉด prop์ ํตํด ๋ช
๋ นํ ๋์์ ๋
ธ์ถํ ์ ์๋ค.forwardRef
์ ํจ๊ป ์ฌ์ฉํ ๋๋ถ๋ชจ ์ปดํฌ๋ํธ์์ ์์ ์ปดํฌ๋ํธ์ ๋ ํผ๋ฐ์ค๋ฅผ ํ๋ํ๊ณ
useImperativeHandle
์ ์ฌ์ฉํ์ฌ ๋ ํผ๋ฐ์ค์ ๋ ธ์ถํ ๋ฉ์๋๋ ๋ฐ์ดํฐ๋ฅผ ์ ์ํ๋ค. ์ด๋ ๋ถ๋ชจ ์ปดํฌ๋ํธ์์ ์์ ์ปดํฌ๋ํธ๋ฅผ ์ง์ ์กฐ์ํด์ผ ํ๋ ๊ฒฝ์ฐ์ ์ ์ฉํ๋ค.
forwardRef
์์ด ์ฌ์ฉํ ๋์ปดํฌ๋ํธ ๋ด๋ถ์์ ํน์ ๋ช ๋ นํ ๋์์ ์ธ๋ถ๋ก ๋ ธ์ถํด์ผ ํ๋ ๊ฒฝ์ฐ์
forwardRef
์์ด ๊ฐ๋ฅํ๋ค.
์ฐธ๊ณ https://react-ko.dev/reference/react/useImperativeHandle