Vue插槽

Vue-slot插槽

1.当你想从父组件传入DOM节点到子组件中展示时,此时就可以在子组件中定义插槽来进行接收父组件传入的DOM节点,插槽就相当于一个占位符,当父组件并没有传入DOM节点时,此时slot插槽并不会被渲染。传入DOM节点之后便会将传入的DOM节点显示在插槽所在的位置。

slot插槽的分类:

  1. 匿名插槽:
//子组件a
<template id="my-a">
 	<div>
		<h1>我是组件a</h1>
		<slot></slot>
	</div>
</template>

//在父组件中
<my-a>
	<div>
		<p>这些内容将显示在匿名插槽所在的位置</p>
	</div>
</my-a>

2.具名插槽

//组件a
<template id="my-a">
 	<div>
		<h1>我是组件a</h1>
		<slot></slot>
		<slot name="s1"></slot>
	</div>
</template>
//父组件中
<my-a>
	<div slot="s1">
		<p>这些内容将在具名  名为s1的插槽所在的位置显示</p>
	</div>
</my-a>

3.作用域插槽

//子组件a内的data
data(){
	return{
	data:'11111'
}
}
//模板
<template id="my-a">
 	<div>
		<h1>我是组件a</h1>
		<slot></slot>
		<slot name="s1"     :data="data"></slot>
	</div>
</template>
//父组件中
<my-a>
	<div slot="s1"   slot-scope="a(自定义名称,此处a表示子组件a的作用域对象)">
		<p>这些内容将在具名  名为s1的插槽所在的位置显示</p>
		<p>{{a.data}}</p>
	</div>
</my-a>
//此时只要  插入的DOM上有  slot-scope属性则表示此DOM显示在作用域插槽上,此DOM节点上访问的数据均为子组件a上的数据

注意事项:

  1. 匿名插槽最好只有一个,即使写了多个可以显示,但是还是会报错
  2. 作用域插槽中访问子组件中的数据时,需要作用域名+.+变量名的方式访问
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值