Vue 3插槽
2023-12-28 12:57:28
- Vue 3中的插槽(Slots)是一种强大的模式,用于创建可复用的组件,它允许你将模板插入到组件内部,同时保持组件的封装性和可重用性。在Vue 3中,插槽的使用变得更加灵活和强大。
基本插槽
- 默认插槽 :
在子组件中,使用<slot>
标签定义一个插槽。父组件中的任何内容都将替换这个<slot>
标签。
<!-- 子组件 -->
<template>
<div>
<slot></slot> <!-- 默认插槽 -->
</div>
</template>
<!-- 父组件 -->
<template>
<ChildComponent>
这里的内容会显示在子组件的插槽中。
</ChildComponent>
</template>
具名插槽
- 定义具名插槽 :
使用name
属性在子组件中定义多个插槽。
<!-- 子组件 -->
<template>
<div>
<slot name="header"></slot> <!-- 具名插槽 -->
<slot></slot> <!-- 默认插槽 -->
<slot name="footer"></slot> <!-- 另一个具名插槽 -->
</div>
</template>
- 使用具名插槽 :
父组件使用v-slot
指令指定要填充的插槽。
<!-- 父组件 -->
<template>
<ChildComponent>
<template v-slot:header>
这里是头部内容。
</template>
这里是默认插槽的内容。
<template v-slot:footer>
这里是底部内容。
</template>
</ChildComponent>
</template>
作用域插槽
- 定义作用域插槽 :
子组件可以通过作用域插槽向父组件传递数据。
<!-- 子组件 -->
<template>
<div>
<slot name="item" v-for="item in items" :item="item"></slot>
</div>
</template>
- 使用作用域插槽 :
父组件可以使用这些数据来定制插槽的内容。
<!-- 父组件 -->
<template>
<ChildComponent>
<template v-slot:item="slotProps">
<div>{{ slotProps.item.name }}</div>
</template>
</ChildComponent>
</template>
插槽的默认内容
- 提供默认内容 :
在子组件的插槽中可以定义默认内容。如果父组件没有提供内容,将显示默认内容。
<!-- 子组件 -->
<template>
<div>
<slot>默认内容</slot>
</div>
</template>
注意事项
- 插槽内容是在父组件中编译的,而不是在子组件中。
- 作用域插槽可以让父组件访问子组件中的数据。
- 使用插槽时,遵循单向数据流的原则,避免直接修改子组件传递给父组件的数据。
插槽是Vue组件系统中一个非常强大的特性,它提供了一种灵活的方式来创建高度定制的组件,同时保持组件逻辑的封装和可重用性。
文章来源:https://blog.csdn.net/qw123456789e/article/details/135249777
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!