728x90
728x90
asChild 속성
들어가며
asChild
속성에 대해 정리해본다.

asChild 속성
개념
- Radix UI와 같은 라이브러리에서 사용되는 속성
- 컴포넌트가 래핑(Wrapping)된 자식 컴포넌트의 스타일이나 기능을 그대로 유지하면서 특정 기능을 제공하기 위해 사용된다.
의미
- 자식 요소를 그대로 사용한다.
- 래핑된 컴포넌트가 새로운 DOM 노드를 생성하지 않고, 해당 자식 요소의 DOM을 그대로 사용하여 기능만 추가한다.
- 불필요한 DOM 노드가 추가되지 않아 HTML 구조를 깔끔하게 유지하고, 스타일이 깨지지 않도록 보장한다.
사용 예
<DropdownMenuTrigger asChild> <Button>Menu</Button> </DropdownMenuTrigger>
⇒ <Button>
은 <DropdownMenuTrigger>
의 자식이지만, <DropdownMenuTrigger>
가 새로운 DOM 노드를 만들지 않는다.
⇒ 대신 <Button>
자체가 DropdownMenuTrigger
로 작동하게 된다.
사용하면 좋은 경우
- 추가하는 래핑 노드가 없기 때문에 스타일이 변경되지(깨지지) 않는다.
- 기존 버튼이나 다른 컴포넌트에 메뉴 트리거 기능을 쉽게 추가할 수 있다.
asChild를 사용하면, 불필요한 DOM 생성 없이 자식 요소의 스타일과 구조를 그대로 유지하면서 추가적인 기능을 적용할 수 있다.
참고 사이트
asChild in React, Svelte, Vue, and Solid for render delegation
Designing polymorphic components.
medium.com
Composition – Radix Primitives
Use the prop to compose Radix's functionality onto alternative element types or your own React components.
www.radix-ui.com
728x90
728x90
'Framework > Tailwind CSS' 카테고리의 다른 글
[Tailwind CSS] sr-only 클래스 (0) | 2024.11.05 |
---|---|
[Tailwind CSS] shadcn/ui (0) | 2024.10.20 |
[Tailwind CSS] daisyUI 테마 설정하기 (0) | 2024.10.01 |
[Tailwind CSS] 테일윈드 설정 파일(tailwind.config.js)에서 플러그인(Plugin) 추가할 때 "'require' is not defined" 오류가 뜰 때 해결법 (0) | 2024.09.29 |
[Tailwind CSS] daisyUI (1) | 2024.09.29 |
[Tailwind CSS] 자주 사용되는 테일윈드 CSS 클래스 정리 (0) | 2024.09.27 |
[Tailwind CSS] Tailwind CSS (0) | 2024.09.27 |
[Tailwind CSS] whitespace-pre-wrap 클래스 (0) | 2024.06.02 |