Vue插槽

插槽

用于父子组件之间的通信(一般是结构,即标签)

可放置在函数参数位置的 JavaScript 表达式 (在支持的环境下可使用解构)。可选,即只需要在为插槽传入 prop 的时候使用。

父组件向子组件指定位置插入html结构(默认插槽、具名插槽),或者子组件给父组件传递数据,父组件决定插入子组件对应位置的结构(作用域插槽)

默认插槽
<template>
	<div>
		<slot></slot>
	</div>
</template>

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

<style>

</style>
<template>
	<div class="container">
		<GetUser>
			<ul>
				<li v-for="(people,index) in name" :key="index">{{people}}</li>
			</ul>
		</GetUser>
	</div>
</template>

<script>
	import GetUser from './components/GetUser'
	export default {
		name:'App',
		components:{GetUser},
		data() {
			return {
				name:['zs','ls','ww','ml'],
			}
		},
	}
</script>

<style>

</style>

具名插槽
<template>
	<div>
		<slot name="first"></slot>
		<slot name="cecond"></slot>
	</div>
</template>

<script>
	export default {
		name:'GetUser',
	}
</script>

<style>

</style>
<template>
	<div>
		<GetUser>
			<ul slot="first">
				<li v-for="(people,index) in name" :key="index">{{people}}</li>
			</ul>
			<div slot="cecond">
				<a href="#">小明</a>
			</div>
		</GetUser>
	</div>
</template>

<script>
	import GetUser from './components/GetUser'
	export default {
		name:'App',
		components:{GetUser},
		data() {
			return {
				name:['张三','李四','王五','马六'],
			}
		},
	}
</script>

<style>

</style>

作用域插槽

数据在子组件中,但是自己不能决定结构,需要将数据传递给父组件,父组件决定结构。

<template>
	<div>
		<slot :people="people"></slot>
	</div>
</template>

<script>
	export default {
		name:'GetUser',
		data() {
			return {
				people:['张三','李四','王五','马六'],
			}
		},
	}
</script>

<style>

</style>
<template>
	<div>
		<GetUser>
			<template scope="man">
				<ul>
					<li v-for="(user,index) in man.people" :key="index">{{user}}</li>
				</ul>
			</template>
		</GetUser>
	</div>
</template>

<script>
	import GetUser from './components/GetUser'
	export default {
		name:'App',
		components:{GetUser},
	}
</script>

<style>

</style>

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值