vue2插槽

插槽

1. 默认插槽

父组件中:(即在子组件中插入标签结构)

<ItemClassify title="游戏分类">    
	<ul>        
		<li v-for="(g,index) in games" :key="index">{
   
   {g}}</li>
	</ul>
</ItemClassify>

子组件中:

<!-- 定义一个插槽 -->
<slot>当使用者在组件中没有插入结构,我会出现</slot>

2. 具名插槽(有多个插槽时,可以根据插槽名将标签放到指定的位置)

父组件中:

<ItemClassify title="美食分类">    
	<img slot="center" src="http://www.baidu.com">    
	<a slot="footer" href="http://www.baidu.com">更多美食</a>
</ItemClassify>

子组件中:

<slot name="center">当使用者没有传递任何结构,我会出现1</slot>  
<slot name="footer">当使用者没有传递任何结构,我会出现2</slot>                                                         

3. 作用域插槽(可实现子组件给父组件传递数据)

父组件中:

<ItemClassify title="美食分类">    
// data只在template中起作用(注意:使用作用域插槽,必须使用template)     
// 用scoped对象接收传过来的数据,scoped={food:["火锅","烧烤","小龙虾","牛排"]}    
<template #content="{
     
     {food}}">        
	<ul>            
		<li v-for="(f,index) in food" :key="index">{
   
   {f}}</li>        
	</ul>    
</template></ItemClassify>

子组件中:

<h3>{
   
   {title}}</h3>
<slot :food="food" msg="我是哈哈" name="content">
	当使用者没有传递任何结构,我会出现1
</slot>

data() {  
	return {
		food:["火锅","烧烤","小龙虾","牛排"],  
	}
},

猜你喜欢

转载自blog.csdn.net/qq_52607834/article/details/127973534