vue的插槽slot

Posted on 2019-05-18 01:20  猫头唔食鱼  阅读(160)  评论(0编辑  收藏  举报

slot分为匿名插槽和具名插槽

1.匿名插槽

首先问一个问题:如果引用过来的子组件标签里有内容,那么怎么显示? 答:在子组件加个slot标签就可以了。所以可以说,slot标签是用于显示引用的子组件中的内容。

父组件引用子组件,子组件标签里,如果有内容,那么slot标签的内容不显示,如果子组件标签没有内容,那么就显示slot标签里的内容。

父组件:

<template>
  <div id="app">
    <!-- 一个空的子组件   显示slot标签里的内容 -->
    <home></home>
    <home>一个不是空的子组件</home>
   </div>
</template>

子组件:

<template>
<div>
    <!-- 匿名插槽 -->
    <slot>如果子组件里没内容,那么就会显示这里</slot>
</div>
</template>

显示结果:

 

 

2.具名插槽

(1)父组件包含要显示的几部分内容,每部分内容加上一个slot属性。

   <home>
      <p slot="s1">这是s1</p>
      <p slot="s2">这是s2</p>
    </home>

(2)给插槽(slot标签)指定一个name属性

    <!-- 具名插槽 -->
    <slot name="s2"></slot>
    <slot name="s1"></slot>

显示结果: