vue3学习(十)插槽slot

slot 是 Web 组件内的一个占位符,是子组件中的提供给父组件使用的一个占位符

用<slot></slot> 表示,父组件可以在这个占位符中填充任何模板代码,如 HTML、组件等,填充的内容会替换子组件的<slot></slot>标签。

匿名插槽

子组件Content.vue ------ 在子组件中用<slot></slot>标签占位

 <main class="main">
     <div>
         <slot></slot>
     </div>
</main>

父组件中

<template>

    <Content class="content">
       <template v-slot>
          <div>
             这是插入主体框中的内容
          </div>
       </template>
    </Content>

</template>

import Content from './Content/Content.vue'

具名插槽

name插槽的名字。拥有 name 属性的插槽叫具名插槽

<main class="main">
    <div>
        <slot name="main"></slot>
    </div>
</main>

父组件通过   v-slot="插槽的名字"    或者简写为 #插槽名

<template>

    <Content class="content">
       <template v-slot='main'>
          <div>
             这是插入主体框中的内容
          </div>
       </template>
    </Content>

</template>

import Content from './Content/Content.vue'

作用域插槽

在子组件动态绑定参数 派发给父组件的slot去使用

    <div>
        <div v-for="item in 100">
            <slot :data="item"></slot>
        </div>
    </div>

父组件解构取值

<Content>
  <template v-slot="{ data }">
     <div>{{ data }}</div>
  </template>
</Content>

动态插槽

插槽名可以是一个变量名

<Content>
    <template #[name]>
        <div>
            我在哪???
        </div>
    </template>
</Content>

let name = ref('where')

可以通过修改变量name的值,动态决定插入内容的位置

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值