vue插槽

一般插槽

当被提供的内容只有默认插槽时,组件的标签才可以被当作插槽的模板来使用。这样我们就可以把 v-slot 直接用在组件上

<todo-list v-slot:default="slotProps">
  <i class="fas fa-check"></i>
  <span class="green">{{ slotProps.item }}</span>
</todo-list>

具名插槽

子: slot name
父: template v-slot:name

//子组件 :
 <template>
  <hgroup class="common_header">
    <div class="left">
        <slot  name="left"> &lt; </slot>
    </div>
    <h1>
      <slot> </slot>
    </h1>
   <div class="right">
    <slot  name="right"> </slot>
   </div>
  </hgroup>
</template>

//父组件:(引用子组件 ebutton)<template>
  <Header>
    <template v-slot:left></template>
    <template v-slot:default>
        首页
    </template>
    <template v-slot:right></template>
  </Header>

作用域插槽

template slot-scope
作用:父组件对子组件的加工处理,子组件

示例1

element要修改原来的一个作用域的样式及数据:
1.在对应区域添加一个作用域插槽,并设置属性 slot-scope=”scope”
2.现在scope.row中就包含有这一行,或者说这个渲染项(item)的全部数据

    <ul>
          <li>
            <template slot-scope="scope">  //作用域插槽
                {{scope.row}}          //包含一项item项的全部数据,row是子组件定义的属性传参
            </template>
          </li>
      </ul>

示例二

子组件传递数据给父组件在插槽中调用
slot

示例三

子组件Child.vue

<template> 
  <slot name="footer" testProps="子组件的值">
          <h3>没传footer插槽</h3>
    </slot>
</template>

父组件

child> 
    <!-- 把v-slot的值指定为作⽤域上下⽂对象 -->
    <template v-slot:default="slotProps">
      来⾃⼦组件数据:{{slotProps.testProps}}
    </template>
  <template #default="slotProps">
      来⾃⼦组件数据:{{slotProps.testProps}}
    </template>
</child>

小结

  • v-slot属性只能在上使用,但在只有默认插槽时可以在组件标签上使用
  • 默认插槽名为default,可以省略default直接写v-slot
  • 缩写为#时不能不写参数,写成#default
  • 可以通过解构获取v-slot={user},还可以重命名v-slot="{user: newName}“和定义默认值v-slot=”{user = ‘默认值’}"
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值