Vue:插槽的作用,具名插槽的使用

一.插槽的作用
声明一个child组件

<div id="app">
			<child>你好Box</child>
		</div>
		<script>
			Vue.component('child',{
				template: `<div>
								<p>Hello box</p>
						   </div>`
			})
			
			var app = new Vue({
				el:"#app",
			})
		</script>

在这里插入图片描述
效果如图,但是你好Box中的内容没有起作用
此时我们引出插槽来解决这个问题

<script>
			Vue.component('child',{
				template: `<div>
								<p>Hello box</p>
								<slot></solt>
						   </div>`
			})
			
			var app = new Vue({
				el:"#app",
			})
		</script>

我们在组件中加入插槽后你好Box中的内容起作用了
在这里插入图片描述
若在没有定义内容,我们可以在中定义默认内容

<div id="app">
			<child></child>
		</div>
		<script>
			Vue.component('child',{
				template: `<div>
								<p>Hello box</p>
								<slot>默认内容</solt>
						   </div>`
			})
			
			var app = new Vue({
				el:"#app",
			})
		</script>

在这里插入图片描述
现在我们知道了插槽的作用是什么
首先要明白插槽是使用在子组件中的,
插槽是为了将父组件中的子组件模板数据正常显示

二.具名插槽

<child>
				<div>header</div>
				<div>footer</div>
			</child>
		</div>
		<script>
			Vue.component('child',{
				template: `<div>
								<slot></slot>
								<div>content</div>
								<slot></slot>
						   </div>`
			})
			
			var app = new Vue({
				el:"#app",
			})
		</script>

在这里插入图片描述
我们在模板中定义的内容为

<slot></slot>
<div>content</div>
<slot></slot>

我们想要的效果实际上是
header
content
footer
这里父组件在调用子组件的时候传入了两个插槽

<div>header</div>
<div>footer</div>

我们可以在模板中通过solt调用这两个插槽
这里我们引出具名插槽,具名插槽就是给插槽起个名字

<div id="app">
			<child>
				<div slot='header'>header</div>
				<div slot='footer'>footer</div>
			</child>
		</div>
		<script>
			Vue.component('child',{
				template: `<div>
								<slot name='header'></slot>
								<div>content</div>
								<slot name='footer'></slot>
						   </div>`
			})
			
			var app = new Vue({
				el:"#app",
			})
		</script>

在这里插入图片描述

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值