我的编程空间,编程开发者的网络收藏夹
学习永远不晚

关于vue的slot分发内容(多个分发)

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

关于vue的slot分发内容(多个分发)

slot分发内容 (多个分发)

 组件模板-元素可以用一个特殊的属性 name 来配置如何分发内容。多个 slot 可以有不同的名字。具名 slot 将匹配内容片段中有对应 slot 特性的元素

<style media="screen">
    .panel{
      margin:10px;width:150px;
      border:1px solid #ccc
    }
    .panel-header,.panel-bottom{
      height: 20px;
      background-color:antiquewhite;
    }
    .panel-body{
      min-height: 50px;
    }
  </style>
<div class="app">
    <!--多个slot分发内容 v-for遍历-->
     <panel2 v-for="item in list">
       <h2 slot="title">{{item.title}}</h2>
       <p slot="desc">{{item.desc}}</p>
       <span slot="tims">{{item.tims}}</span>
     </panel2>
  </div>
<!--组件模板-->
<script type="text/x-Template" id="panelTpl">
   <div class="panel">
       <div class="panel-header"><slot name="title"></slot></div>
       <div class="panel-body">
         <slot name="desc"></slot>
       </div>
       <div class="panel-bottom"><slot name="tims"></slot></div>
   </div>
</script>
<script type="text/javascript">
var panelTpl={
  template:'#panelTpl'
}
var vm=new Vue({
  el:'.app',
  components:{//注册组件
    "panel2":panelTpl
  },
  data:{
    list:[
      {title:'新闻一',desc:'一的描述',tims:'2018-07-19'},
      {title:'新闻二',desc:'二的描述',tims:'2018-07-18'},
      {title:'新闻三',desc:'三的描述',tims:'2018-07-17'}
    ]
  }
});
</script>

slot的多种用法

基本用法

//组件
<template>
    <div class="com">
        <slot name="header"></slot>
        <slot>如果没有插槽或者不具名就是显示当前</slot>
        <slot name="floot"></slot>
    </div>
</template>
<script>
    export default {
        
    }
</script>
 
//使用
<template>
	<div id="app">
		<com>
			<div class="header" slot="header">
				我将会插入到名为header的插槽当中
			</div>
			<div class="floot" slot="floot">
				我将会插入到名为floot的插槽当中
			</div>
		</com>
	</div>
</template>
<script>
import com from '@/components/com.vue';
export default {
	name:"App",
	components:{
		com
	}
}
</script>
 

插槽中使用data

//组件
<template>
    <div class="com">
        <slot name="header" :slotData="comData"></slot>//slotData表示插槽key值
        <slot>如果没有插槽或者不具名就是显示当前</slot>
        <slot name="floot" :slotData="comData"></slot>
    </div>
</template>
 
<script>
    export default {
        data() {
            return {
                comData:{
                    header:"我将会插入到名为header的插槽当中",
                    floot:"我将会插入到名为floot的插槽当中"
                }
            }
        },
    }
</script>
 
//使用
<template>
	<div id="app">
		<com>
			<template v-slot:header="{slotData}">
                //必须使用template包裹,v-slot后面跟着的是插槽名,slotData插槽里表示的key值
				<div class="header">
					{{slotData.header}}
				</div>
			</template>
			<template v-slot:floot="{slotData}">
				<div class="floot">
					{{slotData.floot}}
				</div>
			</template>
		</com>
	</div>
</template>
<script>
import com from '@/components/com.vue';
export default {
	name:"App",
	components:{
		com
	}
}
</script>

动态插槽

//组件
<template>
    <div class="com">
        <slot name="header" :slotData="comData"></slot>
        <slot name="body" :slotData="comData"></slot>
        <slot name="floot"></slot>
    </div>
</template>
 
<script>
    export default {
        data() {
            return {
                comData:{
                    header:"我将会插入到名为header的插槽当中",
                    body:"我将会插入到名为body的插槽当中"
                }
            }
        },
    }
</script>
 
//使用
<template>
	<div id="app">
		<com>
			<template v-slot:[slotName]="{slotData}">
				<div class="slot">
					{{slotData[slotName]}}
				</div>
			</template>
			<div class="floot" slot="floot">
				<button @click="changeSlotName">改变动态插槽</button>
			</div>
		</com>
	</div>
</template>
<script>
import com from '@/components/com.vue';
export default {
	name:"App",
	components:{
		com
	},
	data(){
		return{
			slotName:"header"
		}
	},
	methods: {
		changeSlotName(){
			this.slotName = this.slotName === "header" ? "body" : "header";
		}
	}
}
</script>

以上为个人经验,希望能给大家一个参考,也希望大家多多支持编程网。 

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

关于vue的slot分发内容(多个分发)

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

vue中slot分发内容的示例分析

这篇文章主要为大家展示了“vue中slot分发内容的示例分析”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“vue中slot分发内容的示例分析”这篇文章吧。slot分发内容 (多个分发) 组件模板
2023-06-29

如何使用vue slot分发内容

本文小编为大家详细介绍“如何使用vue slot分发内容”,内容详细,步骤清晰,细节处理妥当,希望这篇“如何使用vue slot分发内容”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。一、什么是slot在使用组件时
2023-07-04

关于Java的HashMap多线程并发问题分析

HashMap是采用链表解决Hash冲突,因为是链表结构,那么就很容易形成闭合的链路,这样在循环的时候只要有线程对这个HashMap进行get操作就会产生死循环,本文针对这个问题进行分析,需要的朋友可以参考下
2023-05-19

关于Keras 2.3.0 发布中的TensorFlow 2.0分析

本篇文章为大家展示了关于Keras 2.3.0 发布中的TensorFlow 2.0分析,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。Keras主要关注tf.keras,同时继续支持Theano/C
2023-06-05

在C#中将一个类的内容分布到多个文件内

本文将详细介绍如何在C#中使用部分类将代码分布到多个文件中,并提供相应的示例代码。
C#代码编程2024-11-29

云服务器属于哪个分类管理的内容

云服务器通常是指公共云服务或私有云服务,它们是由许多不同的软件和硬件组件组成的,这些组件共享同一个基础设施平台,包括存储、处理、网络等服务。这些服务可以通过互联网连接到任何地方,从而使用户可以在家中、工作场所或旅途中访问各种资源。例如,在公共云服务中,客户可以使用虚拟桌面,访问在线内容和应用程序,而无需购买或拥有自己的计算机。同样,在私有云服务中,客户可以使用自己的计算机进行工作,并使用存储、
2023-10-26

7个很棒的Vue开发技巧分享

这篇文章主要为大家整理了7个很棒的Vue开发技巧,可以帮助大家更好的理解和使用vue框架。文中的示例代码讲解详细,感兴趣的可以了解一下
2023-02-08

Nginx与WebSocket在实时多媒体内容分发网络中的应用

Nginx与WebSocket在实时多媒体内容分发网络中的应用主要体现在通过WebSocket实现实时数据传输,以及Nginx作为反向代理和负载均衡器来优化这一过程。以下是它们的应用方式和相关信息:Nginx在实时多媒体内容分发网络中的应
Nginx与WebSocket在实时多媒体内容分发网络中的应用
2024-10-20

Python中关于前后端分离开发入门的示例分析

本篇文章为大家展示了Python中关于前后端分离开发入门的示例分析,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。前后端分离开发入门在传统的Web应用开发中,大多数的程序员会将浏览器作为前后端的分界线
2023-06-02

编程热搜

目录