vue3插槽 slot

vue3插槽 slot

一、基本使用

子组件

<template>
    <slot name="button"></slot>
    <slot name="input"></slot>
    <slot name="h2"></slot>
</template>

父组件
只要没有提供内容的slot就不会被被渲染

<script setup>
import Hello from './components/Hello.vue'
</script>

<template>
  <Hello>
    <template v-slot:button>
      <button>按钮</button>
    </template>

    <template v-slot:input>
        <input type="text"/>
    </template>

    <template v-slot:h2>
        <h2>插槽</h2>
    </template>
  </Hello>
</template>

二、循环 高级使用

子组件

<template>
    <div>
        <slot :list="list" :message="message"></slot>
    </div>
</template>

<script>
export default{
    data(){
        return{
            message:'你好',
            list:[1,2,3,4,5]
        }
    }
}
</script>

父组件

<!--作用域插槽,父组件替换插槽的标签,但是数据由子组件提供-->
<Hello>
<!--包含所有插槽prop的对象命名为slotProps-->
  <template v-slot:default="slotProps">
    <ul>
    <li v-for="item in slotProps.list" :key="item">{{item}}</li>
    </ul>
   </template>
</Hello>

渲染出来
在这里插入图片描述

Vue3中,可以通过插槽(slot)来实现组件之间的数据传递。插槽可以在父组件中定义内容,并在子组件中使用。当父组件向子组件传递插槽时,可以使用插槽的特性进行数据传递。 引用[1]和中的代码示例展示了在Vue3中使用插槽进行数据传递的方法。在父组件中,可以使用`<template>`标签定义插槽,然后在子组件中使用相应的标签引用插槽内容。通过为插槽添加属性,可以将父组件中的数据传递给子组件。 例如,在父组件中定义了一个名为`error`的插槽,在子组件中可以使用`template`标签的`#error`属性来引用该插槽。在插槽中可以自定义插槽内容,并通过`slotProps`参数接收父组件传递过来的数据。 总结来说,Vue3中的插槽(slot)可以实现父组件向子组件进行数据传递的功能。通过在父组件中定义插槽,并在子组件中使用相应的标签引用插槽,可以将父组件的数据传递给子组件进行处理和展示。 中的`el-image`组件是一个被二次封装的组件,可以根据需要更换为不同的组件库的组件。通过循环注册父组件传递下来的插槽,可以避免手动操作时间和空间上的浪费。 中的示例是一个自定义的组件`myComponents`,通过在模板中使用`template`标签和`#error`属性,可以在子组件中接收父组件传递的`error`插槽并进行处理。 总而言之,通过插槽的使用,可以在Vue3中实现父组件向子组件进行数据传递的功能,提高组件的灵活性和复用性。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值