vue自主学习总结,插槽的使用2

vue学习

vue插槽slot的学习

上节我们讲了默认的插槽,这节我们来讲具名插槽。
当我们在引用child子组件时,我们可以在标签中加入自定义个内容,通过在子组件中加入slot来使child标签中的内容得到渲染,但这又一个弊端,也就是我在引用的child组件标签中添加的所有自定义内容,统统在这一个标签中显示,但假如我自定的内容,想要部分显示在头部,部分显示在尾部,又要如何去处理呢?当然,只要你想,那便有办法实现。
具名插槽,顾名思义便是有名字的插槽,也就是说,用名字来区分插槽,怎么样,说到这里是否有了些许思路。==》 我们在子组件中多定义几个slot 并起不同的名字不就行了吗?
话不多说,上代码:

//child 的模板
<template>
	<div class="container">
		//名为header的插槽,父组件自定义内容时,引用slot="header" 那么所有的内容就会在这里显示
	    <slot name="header"></slot>
	    //没有调用插槽的内容,将全部显示在这里,也即是默认插槽
	    <slot></slot>
	    // 当然,这里就是footer咯
	    <slot name="footer"></slot>
	</div>
</template>
//父组件引用child
<child>
	//不客气了,我先来,我用header这个插槽啊
	<template  slot="header">
		既然我用了header这个插槽,那我在渲染的时候将显示在顶部啊
	</template>
	//我是footer为了证明我的位置是根据子组件插槽位置来定的,我先来了,但我依然会显示在底部
	//同时为了证明我不一定非要用template模板,那我就不用啦
	<p slot="footer">
		我是footer啊,虽然我在自定义的时候位置靠上,但子组件footer插槽在最下面,所以我会显示在底部啊
	</p>
	//再然后就是默认的啦,有些内容,不需要用具名插槽控制位置啊,只要显示就行啦
	<h1>haha,我将显示在默认插槽中哦</h1>
	<h2>同样的我也在默认插槽中</h2>
</child>

差不多了,就这些,够通俗易懂吧,下节我们讲作用域插槽。

Vue 2 中,插槽slot)是一种用于在组件中插入内容的机制。它允许你在组件的模板中定义带有特定名称的插槽,并在使用组件传递内容到这些插槽中。 以下是 Vue 2 中插槽的基本使用方法: 1. 在组件模板中定义插槽: ```html <template> <div> <slot></slot> </div> </template> ``` 2. 在使用组件,将内容传递给插槽: ```html <template> <div> <my-component> <p>This content will be inserted into the slot.</p> </my-component> </div> </template> ``` 在上面的示例中,`<slot></slot>`是一个匿名插槽,可以接受任意传递进来的内容。当使用 `<my-component>` 组件,传递给组件的内容将被插入到这个匿名插槽中。 除了匿名插槽外,你还可以为插槽指定名称。这样,在使用组件,你可以根据插槽的名称将内容分发到不同的插槽中。 例如,假设你的组件有两个具名插槽:`header` 和 `footer`,你可以按照以下方式使用它们: ```html <template> <div> <header> <slot name="header"></slot> </header> <main> <slot></slot> </main> <footer> <slot name="footer"></slot> </footer> </div> </template> ``` ```html <template> <div> <my-component> <template v-slot:header> <h1>This content will go into the header slot.</h1> </template> <p>This content will go into the main slot.</p> <template v-slot:footer> <p>This content will go into the footer slot.</p> </template> </my-component> </div> </template> ``` 在这个示例中,`<slot name="header"></slot>` 和 `<slot name="footer"></slot>` 是具名插槽使用 `v-slot` 指令(或简写的 `#`)可以指定内容要分发到哪个具名插槽中。 希望这个回答能够帮助你理解 Vue 2 中插槽的基本使用。如有任何疑问,请随提问!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值