• 插槽内容

    插槽内容

    Vue 实现了一套内容分发的 API,这套 API 的设计灵感源自 Web Components 规范草案,将 <slot> 元素作为承载分发内容的出口。

    它允许你像这样合成组件:

    1. <navigation-link url="/profile">
    2. Your Profile
    3. </navigation-link>

    然后你在 <navigation-link> 的模板中可能会写为:

    1. <a
    2. v-bind:href="url"
    3. class="nav-link"
    4. >
    5. <slot></slot>
    6. </a>

    当组件渲染的时候,<slot></slot> 将会被替换为“Your Profile”。插槽内可以包含任何模板代码,包括 HTML:

    1. <navigation-link url="/profile">
    2. <!-- 添加一个 Font Awesome 图标 -->
    3. <span class="fa fa-user"></span>
    4. Your Profile
    5. </navigation-link>

    甚至其它的组件:

    <navigation-link url="/profile">
      <!-- 添加一个图标的组件 -->
      <font-awesome-icon name="user"></font-awesome-icon>
      Your Profile
    </navigation-link>

    如果 <navigation-link> 没有包含一个 <slot> 元素,则该组件起始标签和结束标签之间的任何内容都会被抛弃。