Vue v-slot 指令


示例

使用 v-slot 指令来定向 'Hello!' 消息发送至 <slot-comp> 组件内的命名槽 'bottomSlot'。

<slot-comp v-slot:bottomSlot>'Hello!'</slot-comp>
运行示例 »

请参阅下面的更多示例。


定义和用法

v-slot 指令用于将内容定向到指定插槽。

v-slot: 的简写是 #

v-slot 指令还可用于从作用域槽接收数据,这是通过在子组件中使用 v-bind 提供的。

v-slot 可以在组件上使用,也可以在内置的 <template> 元素上使用。

当我们想要将内容分配给组件中的多个插槽时,v-slot 用于 <template> 元素。


更多示例

示例 1

<template> 元素上使用 v-slot 将内容分配给同一组件中的两个不同插槽。

App.vue:

<template>
  <h1>App.vue</h1>
  <p>该组件有两个槽,模板元素用于向两个槽分配内容。</p>
  <slot-comp>
    <template v-slot:topSlot>
      <div>
        <p>Tigers are beautiful!</p>
        <img src="tiger.svg" alt="tiger" width="100">
      </div>
    </template>
    <template v-slot:bottomSlot>
      <div>
        <p>Whales can be very big</p>
      </div>
    </template>
  </slot-comp>
</template>

SlotComp.vue:

<template>
  <hr>
  <h3>组件</h3>
  <slot name="topSlot"></slot>
  <slot name="bottomSlot"></slot>
</template>
运行示例 »

示例 2

使用v-slot 将内容定向到默认插槽。

SlotComp.vue:

<h3>组件</h3>
<div>
  <slot></slot>
</div>
<div>
  <slot name="bottomSlot"></slot>
</div>

App.vue:

<h1>App.vue</h1>
<p>该组件有两个 div 标签,每个标签中有一个插槽。</p>
<slot-comp v-slot:default>'Default slot'</slot-comp>
运行示例 »

示例 3

使用v-slot:简写#

App.vue:

<h1>App.vue</h1>
<p>该组件有两个 div 标签,每个标签中有一个插槽。</p>
<slot-comp #topSlot>'Hello!'</slot-comp>

SlotComp.vue:

<h3>组件</h3>
<div>
  <slot name="topSlot"></slot>
</div>
<div>
  <slot name="bottomSlot"></slot>
</div>
运行示例 »

示例 4

使用 v-slot 从作用域插槽接收数据。

App.vue:

<slot-comp v-slot:"dataFromSlot">
  <h2>{{ dataFromSlot.lclData }}</h2>
</slot-comp>
运行示例 »

相关页面

Vue 教程:Vue 插槽

Vue 教程:作用域插槽

Vue 教程:Vue 组件

Vue 教程:Vue v-slot

Vue 参考:Vue <slot> 元素

Vue 参考:Vue $slots 对象