Vue-插槽

Vue插槽是一种将内容从父组件注入子组件的绝佳方法。

组件通过插槽传入自定义结构。

用于实现组件的内容分发, 通过 slot 标签, 可以接收到写在组件标签内的内容。

vue提供组件插槽能力, 允许开发者在封装组件时,把不确定的部分定义为插槽。

1、匿名插槽(slot)

在定义组件时,在template中用slot来占个坑

代码演示:

//子组件
<template>
  <div>
    <h2>有内容</h2>
    <!-- 获取插槽的内容 -->
    <!--1、 默认插槽 -->
    <slot>默认内容</slot>
  </div>
</template>

//父组件
<template>
  <div>
      <div class=""></div>
    <myCom>
      <!-- 由于没有myCom这个组件,显示以下内容 -->
      <p>只为占坑</p>
    </myCom>
  </div>
</template>

2、 具名插槽

当一个组件内有2处以上需要外部传入标签的地方

父标签里定义
<template v-slot:one>第二个坑</template>
 <template #two>第三个坑</template>

子标签里        
    <slot name="one">第二个坑的默认内容</slot><br />
    <slot name="two">第三个坑的默认内容</slot>

3 、作用域插槽

作用域内的插槽允许我们父组件中的插槽内容访问在子组件中找到的数据

 用法:

 代码:

                                      子组件
<template>
  <div>
    <!-- 给slot上补充自定义的属性 -->
   			 <slot name="content" :a="1" :b="2">
      默认内容
    </slot>
  </div>
</template>

 

						     		父组件
<template>
  <div>
    <MyCom>
      <!-- 
        v-slot:插槽名="对象" 
      对象会自动接收这个插槽传递回来自定义属性
      -->
            <template v-slot:content="scope">
            <!-- <h1>自定义的内容,填坑, {{scope}}</h1> -->
                <h3>{{scope.a}}</h3>
                <p>{{scope.b}}</p>
            </template>
    </MyCom>
  </div>
</template>

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值