{site_name}

{site_name}

🌜 搜索

Vue 3.0 插槽是一种用于在组件中传递内容的机制

前端 𝄐 0
vue 插槽详解,vue三种插槽的区别,vue插槽用法,vue的插槽有几种方式,vue3 slot插槽,vue3具名插槽
Vue 3.0 插槽是一种用于在组件中传递内容的机制。它允许开发者在父组件中将任意内容插入到子组件中指定的位置。

Vue 3.0 插槽有两种类型:具名插槽和匿名插槽。具名插槽可以让开发者在父组件中使用多个不同的插槽,而匿名插槽则只能使用一个默认的插槽。

下面是一个使用具名插槽的例子:

html
<!-- 父组件 -->
<template>
<div>
<slot name="header"></slot>
<ul>
<li v-for="item in items" :key="item">{{ item }}</li>
</ul>
<slot name="footer"></slot>
</div>
</template>

<script>
export default {
name: 'MyComponent',
props: ['items']
}
</script>


html
<!-- 子组件 -->
<template>
<my-component :items="['apple', 'banana', 'orange']">
<h1 slot="header">Fruits</h1>
<p slot="footer">These are all the fruits.</p>
</my-component>
</template>


在这个例子中,MyComponent 组件定义了两个具名插槽 header 和 footer,并将它们放置在组件模板中的特定位置。在父组件中,我们可以像普通的插槽一样使用它们,并在 MyComponent 组件中通过 slot 元素的 name 属性来指定要使用哪个具名插槽。

下面是一个使用匿名插槽的例子:

html
<!-- 父组件 -->
<template>
<div>
<slot></slot>
</div>
</template>

<script>
export default {
name: 'MyComponent'
}
</script>


html
<!-- 子组件 -->
<template>
<my-component>
<p>Hello, world!</p>
</my-component>
</template>


在这个例子中,MyComponent 组件只定义了一个匿名插槽,并将它放置在组件模板中的特定位置。在父组件中,我们可以像普通的插槽一样使用它,并将任意内容插入到组件中的这个位置。在这个例子中,我们插入了一个 <p> 元素,显示 "Hello, world!"。