Vue:Slot
슬롯에 들어가는 내용 (Slot Content)
Vue에 있는 컨텐트 배포 API는 <slot>
요소를 컨텐트 배포 통로로 사용하는 Web Components spec draft에서 영향을 받았습니다.
WARNING |
(역자 주: 웹컴포넌트는 2011년에 최초로 제안된 개념으로 구글에서 주로 밀고 있습니다. 표준안만 나오면 가장 가볍고 보편적인 웹 프레임워크가 되었겠지만 브라우저 제작사들이 아직 표준안을 도출하지 못하고 있습니다. 대신 논의 과정에서 나온 여러 개념들이 리액트, 앵귤러, 뷰 등의 웹 프레임워크에 도입되어서 사용되고 있습니다.) |
그래서 아래와 같은 컴포넌트를 만들 수 있습니다.
그리고 <navigation-link>
템플릿을 아래와 같이 만들 수 있습니다.
컴포넌트를 렌더링할 때 <slot></slot>
이 “Your Profile”로 교체됩니다. 슬롯에는 HTML 같은 템플릿 코드를 포함시킬 수 있기 때문입니다.
<navigation-link url="/profile">
<!-- Font Awesome 아이콘을 추가합시다 -->
<span class="fa fa-user"></span>
Your Profile
</navigation-link>
다른 컴포넌트(역자 주: <font-awesome-icon>
)도 가능합니다.
<navigation-link url="/profile">
<!-- 컴포넌트로 아이콘을 추가해봅시다 -->
<font-awesome-icon name="user"></font-awesome-icon>
Your Profile
</navigation-link>
만약 <navigation-link>
템플릿이 <slot>
요소를 가지고 있지 않다면 그 자리에 들어갔어야 할 모든 내용이 무시될 것입니다.