Vue slot插槽的基本使用

Slot插槽

插槽,可以实现在组件标签中写内容,然后渲染到组件中。默认情况下是不支持这种操作的,使用slot可以实现

默认slot

Child.vue

<template>
  <div>
    <slot>默认值 如果标签中没写内容,这显示默认内容</slot>

  </div>

</template>
<script>
  export default {

  }
</script>

Parent.vue

<template>
  <div>
    <Child>
      <!-- 这里的内容会被渲染到对应的slot中 -->
      内容
    </Child>

  </div>

</template>
<script>
  import Child from 'Child.vue'
  export default {
    components: {
      Child
    }
  }
</script>

默认slot其实有个name叫 default

具名插槽

在一个组件中可以有多个插槽,插槽在使用的过程中可以去渲染不同的内容。

Child.vue

<template>
  <div>
    <slot>默认值 如果标签中没写内容,这显示默认内容</slot>
    <slot name="name1"></slot>
    <slot name="name2">></slot>
    <slot name="name3">></slot>
  </div>
</template>
<script>
  export default {

  }
</script>
<template>
  <div>
    <Child>
      <!-- 被渲染到没有名字的slot -->
      内容 

      <!-- 当我们想要去渲染到对应的slot中时,需要使用v-slot 和 template或者组件标签 -->
      <template v-slot:name1>这个内容是name1的</template>
      <template v-slot:name2>这个内容是name2的</template>
      <template v-slot:name3>这个内容是name3的</template>

    </Child>

  </div>

</template>
<script>
  import Child from 'Child.vue'
  export default {
    components: {
      Child
    }
  }
</script>

具名插槽使用在组件库封装,有些需要借助样式,但是内容完全由组件使用时自定义的时候,我们可以使用

作用域插槽

Child.vue

<template>
  <div>
    <!-- 我们在使用slot时,可以在slot上定义一些数据 -->
    <slot a="1" b="2">默认值 如果标签中没写内容,这显示默认内容</slot>
    <slot c="3" name="name1"></slot>
  </div>
</template>
<script>
  export default {

  }
</script>

Parent.vue

<template>
  <div>
    <Child>
      <!-- 被渲染到没有名字的slot -->
      <template v-slot="{a, b}">
        {{a}} - {{b}}
      </template>

      <!-- 当我们想要去渲染到对应的slot中时,需要使用v-slot 和 template或者组件标签 -->
      <template v-slot:name1="{c}">
        {{c}}
      </template>


    </Child>

  </div>

</template>
<script>
  import Child from 'Child.vue'
  export default {
    components: {
      Child
    }
  }
</script>

插槽在2.6版本更新了

v-slot:name -> slot=“name”

v-slot=“obj” -> slot-scope=“obj”

v-slot可以缩写成 #

在vueCli中实现cnode的请求案例
实现button组件

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值