๋ฆฌ์กํธ ์ปดํฌ๋ํธ๋ฅผ ๊ฐ๋ฐํ๋ค๋ณด๋ฉด, ์ปดํฌ๋ํธ๋ฅผ ์ด๋ป๊ฒ ๋ถ๋ฆฌํด์ผํ ๊ฒ์ธ๊ฐ๋ฅผ ๋ง์ด ๊ณ ๋ฏผํ๋ค.๋, ๋ถ๋ฆฌํ์ฌ ์ด๋ ํ ํจํด์ ์ด์ฉํ์ฌ ์์ฑํ ์ง๋ ๊ณ ๋ฏผํ๋ค. ์ฐ์ ์ปดํฌ๋ํธ๋ฅผ ๋ถ๋ฆฌํ๋ ๊ธฐ์ค์ ๋ํด ์์๋ณด์. ๐ฆด ์ปดํฌ๋ํธ ๋ถ๋ฆฌ1. โป๏ธ ์ฌ์ฌ์ฉ์ฑ (Resualbility)๐๐ป ๋์ผํ UI๋ ๊ธฐ๋ฅ์ ์ฌ๋ฌ ๊ณณ์์ ์ฌ์ฉํ ๊ฐ๋ฅ์ฑ์ด ์๋ ๊ฒฝ์ฐ ์ปดํฌ๋ํธ๋ฅผ ๋ถ๋ฆฌํ๋ค.๐๐ป ex. Button, Modal, Card, Input ์ฝ๋ ์ข ๋ ์ดํดํ๊ธฐ >> ์ ํธํจ์ cn(tailwind-merge) tailwind-mergeMerge Tailwind CSS classes without style conflicts. Latest version: 3.1.0, last published: 3 days ago. Start using ta..
• kyounghwan๋์ GitHub.io Guide | ๊ธฐ์ต๋ณด๋ค ๊ธฐ๋ก์Guide ๋ณธ ์นดํ
๊ณ ๋ฆฌ๋ vue.js ์ TypeScript(TS)๋ฅผ ์ ์ฉํ์๋ ์๊ฐ์ผ๋ก TS๋ฅผ ๊ณต๋ถํ๊ณ ๊ธฐ๋กํ ๋ด์ฉ์ผ๋ก ๊ตฌ์ฑ๋์ด ์์ต๋๋ค. ์ฌ์ ์ค๋น vue create๋ฅผ ํตํด ํ๋ก์ ํธ๋ฅผ ๋ง๋ค์๋ค๊ณ ๊ฐ์ ํ๊ณ vue.js ์ฝ๋ ์์ tskyounghwan01.github.io โ ๏ธ any ํ์
์ ์ด๋ ํ ๊ฐ๋ค์ด๋ ๋ฐ์ ์ ์๋ค๊ณ ์ ์ธ๋๋๋ฐ, any๋ฅผ ์ค๊ตฌ๋๋ฐฉ์ผ๋ก ์ฌ์ฉํ ๊ฒฝ์ฐ, VanillaJS์ ๋ค๋ฅธ ์ ์ด ์์ผ๋ฏ๋ก any ํ์
์ ์ ์ธ์ ํ์ง ์๋ ๊ฒ์ ๊ธธ๋ค์ด์. ์์ฑ์๋ ํ๋ก์ ํธ๋ฅผ ์งํํ๋ฉด์ type์ ์์ฃผ๋ก ์ด๋ค.๊ทธ ์ด์ ๋,interface ์ ์ ํ ๋ง์ฐ์ค๋ฅผ ํธ๋ฒํ์ฌ ํ์ธํ๋ ค๊ณ ํ๋ฉด ํ์
์ข
๋ฅ๋ฅผ ๋ฐ๋ก ํ์ธ ํ ์ ์๋ ๋ฐ๋ฉด, t..
github.com/radix-ui/react-useControllableState ์์ค์ฝ๋ primitives/packages/react/use-controllable-state/src/useControllableState.tsx at main · radix-ui/primitivesRadix Primitives is an open-source UI component library for building high-quality, accessible design systems and web apps. Maintained by @workos. - radix-ui/primitivesgithub.com ๐น๏ธ useControllableState() ๋?Radix ๋ผ์ด๋ธ๋ฌ๋ฆฌ์์ ์ ๊ณตํ๋ React ํ
์ผ๋ก, ์ ..
์๋จ ๋ด์ฉ ์์ฑ ์์ ( 2025-01-31 ~ ) 2025. 02. 02 ์ถ๊ฐโ useControllableState() ๊ณต๋ถโ ReactNode, ReactChild, ReactElement ๊ณต๋ถ ํ, ์ฌ์์ฑ ๋ ์์ (์๋ง ์ฝ๋ ๋ํ ๋ณ๊ฒฝ๋ ์์ ) ํฉ์ฑ ์ปดํฌ๋ํธ์๋ ๋ค์๊ณผ ๊ฐ๋ค 1. Header, Body, Footer๋ฅผ ๋ชจ๋ ํธ์ถํ ๊ฒฝ์ฐ2. Body์ Footer๋ง ํธ์ถํ ๊ฒฝ์ฐ3. Body๋ง ํธ์ถํ๊ณ Body์ ์คํ์ผ๋ง์ ๋ฎ์ด์์ด ๊ฒฝ์ฐ์ฌ์ฉ์๊ฐ ํ์ํ ์ปดํฌ๋ํธ๋ง์ ํธ์ถํจ์ ๋ฐ๋ผ ๋ค์ํ ๋ชจ์์ ์ปดํฌ๋ํธ๋ฅผ ๋ง๋ค ์ ์๋ค.๋ํ ๊ฐ ์ปดํฌ๋ํธ์ className(tailwindCSS), style์ props๋ก ๋๊ฒจ์ฃผ์ด ๋์์ธ์ ์์ ํ ์ ์๋ค. ๐ App.tsx (ํ์ํ ๊ฒฝ์ฐ ํผ์ณ์ ๋ณด๊ธฐ)๋๋ณด๊ธฐim..
์ฐธ๊ณ ์ฌ์ดํธ• ์นด์นด์ค - FE ๊ธฐ์ ๋ธ๋ก๊ทธ / ์ปดํฌ๋ํธ ์ถ์ํ• velog - jinoo.io / ์ปดํฌ๋ํธ๋ฅผ ๋ ๊ณ ์ฒ๋ผ ์์๋ณด์! *์ถ์ํ: ์ฌ๋ฌ ๊ฐ์ง ์ฌ๋ฌผ์ด๋ ๊ฐ๋
์์ ๊ณตํต๋๋ ํน์ฑ์ด๋ ์์ฑ ๋ฐ์๋ฅผ ์ถ์ถํ์ฌ ํ์
ํ๋ ์์ฉ ๐ ์ปดํฌ๋ํธ์ ์ถ์ํํ๋ ํ๋ก ํธ์๋ ๊ฐ๋ฐ์ ์ปดํฌ๋ํธ ๊ธฐ๋ฐ์ ํ๋ ์์ํฌ(ํน์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ)๋ฅผ ์ฌ์ฉํ์ฌ ๊ฐ๋ฐํ๊ฒ ๋๋ค.์ปดํฌ๋ํธ ๋จ์์ ๊ฐ๋ฐ๋ก ์ฅ์ ์ ๋ฌด์์ผ๊น? ๐๐ป ์ฅ์ 1. ์ฌ์ฌ์ฉ์ฑ: ์ปดํฌ๋ํธ๋ ๋
๋ฆฝ์ ์ด๊ณ ์ฌ์ฌ์ฉ ๊ฐ๋ฅํ ์ฝ๋ ๋ธ๋ก์ผ๋ก, ์ฌ๋ฌ ๊ณณ์์ ๋์ผํ ์ปดํฌ๋ํธ๋ฅผ ์ฌ์ฉํ ์ ์๋ค.์ด๋ ์ฝ๋์ ์ค๋ณต์ ์ค์ด๊ณ ์ ์ง๋ณด์๋ฅผ ์ฉ์ดํ๊ฒ ํ๋ค.2. ์ ์ง๋ณด์ ์ฉ์ด์ฑ: ์ปดํฌ๋ํธ๋ ๋
๋ฆฝ์ ์ผ๋ก ๊ด๋ฆฌ๋๊ธฐ ๋๋ฌธ์ ํน์ ๊ธฐ๋ฅ์ด๋ UI ์์๋ฅผ ์์ ํ ๋ ํด๋น ์ปดํฌ๋ํธ๋ง ์
๋ฐ์ดํธํ๋ฉด ๋๋ค.์ด๋ ์ฝ๋์ ๊ฐ๋
์ฑ์ ..
๐ useEffectuseEffect()๋ ํ์ด์ง์ ๋ง์ดํธ, ์ธ๋ง์ดํธ, ์
๋ฐ์ดํธ ์ ์์
์ ์ค์ ํ๋ค.์ฉ์ด์ค๋ช
Mount์ปดํฌ๋ํธ๊ฐ ํ์ด์ง์ ๋ํ๋จunMount์ปดํฌ๋ํธ๊ฐ ํ์ด์ง์์ ์ฌ๋ผ์ง ์
๋ฐ์ดํธ๋ useEffect() ํน์ ๊ฐ์ ์์กดํ์ฌ ํด๋น ๊ฐ์ด ๋ณ๊ฒฝ, ์คํ๋๋ฉด ํด๋น useEffect()๋ฅผ ์ฌ์คํํ๋ค. useEffect()์ ๊ตฌ์กฐ๋ ๋ค์๊ณผ ๊ฐ๋ค.useEffect(()=> { // ๋ง์ดํธ ์๋ฃ ํ ์คํํ ์ฝ๋ return () => { // ์ธ๋ง์ดํธ ์๋ฃ ํ ์คํํ ์ฝ๋ }}, [dependencies]) dependencies์ ๊ฐ์ด ๋ณ๊ฒฝ๋๋ฉด ์ธ๋ง์ดํธ๊ฐ ์ผ์ด๋๋ฉด์ return()์ ํตํด ๊ธฐ์กด ์์
์ ํด์ ํ๊ณ ๋ค์ ๋ง์ดํธ ์ํจ๋ค. ๐ป Code๋ฆฌ์กํธ ํ๋ก์ ํธ๋ฅผ ์์ฑํ๊ณ ๋ค์๊ณผ ๊ฐ์ด ์์ฑํ๋ค..
๐ ๋ฆฌ์กํธ ๋ฉํ์์ ๊ฐ๋ฐํ ์คํ ์์ค ์๋ฐ์คํฌ๋ฆฝํธ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ด๋ค. ํ์ด์ง ์ ํ ๋ฐ ์ฌ์ฉ์ UI ๋ถ๋ถ์์ ์๋นํ ๋ถ๋๋ฝ๊ฒ ์๋ํ๊ธฐ ๋๋ฌธ์ ํด๋น ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ฌ์ฉํ๋ค. ๋๋ html์ ํจ์, array, object์ ๋ณด๊ดํ์ฌ ์ฌ์ฌ์ฉ์ด ๊ฐ๋ฅํ์ฌ ํฐ ํ๋ก์ ํธ์ผ์๋ก html ๊ด๋ฆฌ๊ฐ ํธํด์ง๋ค. https://ko.legacy.reactjs.org/ React – ์ฌ์ฉ์ ์ธํฐํ์ด์ค๋ฅผ ๋ง๋ค๊ธฐ ์ํ JavaScript ๋ผ์ด๋ธ๋ฌ๋ฆฌ A JavaScript library for building user interfaces ko.legacy.reactjs.org โฌ๏ธ Install ๋ฆฌ์กํธ ๊ฐ๋ฐ์ ํ๊ธฐ ์ํด์ nodejs๋ฅผ ์ค์นํด์ผํ๋ค. ์ค์น๊ฐ ๋์ด์๋์ง ํ์ธํ๊ธฐ ์ํด์ ๋ช
๋ น ํ๋กฌํํธ(CMD)๋ฅผ ์ด์ด์ ์๋์ ๊ฐ์ด ์์ฑํ๋ค. ..