Vue中插槽的使用
1.作用:让父组件可以向子组件指定位置插入html结构,也是一种组件间通信的方式,适用于 父组件 ===> 子组件 。
2.分类:默认插槽、具名插槽、作用域插槽
3.使用方式:
①默认插槽 当父组件没有插入时,插槽显示默认内容(一般slot标签内部不写内容)
父组件中:
<Category>
<div>父组件使用插槽后的内容</div>
</Category>
子组件中:
<template>
<div>
<!-- 定义插槽 -->
<slot>插槽默认内容...</slot>
</div>
</template>
②具名插槽 使用场景很多
1 父组件中:
2 <HelloWorld>
3 <template slot="center"> <!--1. 这种写法废弃 -->
4 <div>html结构1</div>
5 </template>
6
7 <template v-slot:footer> <!--2. 新写法 #footer -->
8 <div>html结构2</div>
9 </template>
10 </HelloWorld>
11 子组件中:
12 <template>
13 <div>
14 <!-- 定义插槽 -->
15 <slot name="center">插槽默认内容...</slot>
16 <slot name="footer">插槽默认内容...</slot>
17 </div>
18 </template>
③作用域插槽
- 数据在组件的自身,但根据数据生成的结构需要组件的使用者来决定,比如两个地方都需要使用这个子组件,但是在子组件需要展示不同是数据结构,可以通过这个方法解决。
1 //父组件根据子组件的数据生成对应的结构插入到子组件中去
2 <template>
3 <div>
4 <HelloWorld :tableData="tableData">
5 <template v-slot:default="scope"> 新写法 #default="scope"
6 {{scope.data.name}} //data是子组件slot传过来的值
7 </template>
8 </HelloWorld>
9 </div>
10 </template>
11
12 <script>
13 import { reactive, toRefs } from "vue";
14 import HelloWorld from "../components/HelloWorld.vue";
15 export default {
16 components: { HelloWorld },
17 setup() {
18 const state = reactive({
19 tableData: [
20 {
21 date: "2016-05-02",
22 name: "王小虎",
23 province: "上海",
24 city: "普陀区",
25 address: "上海市普陀区金沙江路 1518 弄",
26 slot: 'data',
27 },
28 {
29 date: "2016-05-04",
30 name: "王小虎",
31 province: "上海",
32 city: "普陀区",
33 address: "上海市普陀区金沙江路 1517 弄",
34 zip: 200333,
35 slot: 'name',
36 },
37 {
38 date: "2016-05-01",
39 name: "王小虎",
40 province: "上海",
41 city: "普陀区",
42 address: "上海市普陀区金沙江路 1519 弄",
43 zip: 200333,
44 slot: 'province',
45
46 },
47 {
48 date: "2016-05-03",
49 name: "王小虎",
50 province: "上海",
51 city: "普陀区",
52 address: "上海市普陀区金沙江路 1516 弄",
53 zip: 200333,
54 slot: 'address',
55 },
56 ],
57 });
58
59 return {
60 ...toRefs(state),
61 };
62 },
63 };
64 </script>
65
66 //子组件将数据传递给父组件
67 <template>
68 <div>
69 <li v-for="(item, index) in tableData" :key="index">
70 <slot :data="item" :index="index"></slot>
71 </li>
72 </div>
73 </template>
74
75 <script>
76 import { reactive, toRefs } from "vue";
77
78 export default {
79 props: ["tableData"],
80 setup() {
81 const state = reactive({
82 count: "子组件",
83 });
84
85 return {
86 ...toRefs(state),
87 };
88 },
89 };
90 </script>
91
92 <style>
93
94 </style>
Vue中插槽的使用的更多相关文章
- Vue中插槽指令
08.29自我总结 Vue中插槽指令 意义 就是在组件里留着差值方便后续组件内容新增 而且由于插件是写在父级中数据可以直接父级中传输而不需要传子再传父有些情况会减少写代码量 示例 <div id ...
- vue中插槽作用域的使用
一.插槽作用域 1.简单来说就是带参数的插槽: 2.使用方式: 在组件标签内部加一个template标签 在template标签上加一个属性scope 值随意书写 在组件内部用slot进行接受,如果给 ...
- Vue中插槽slot的使用
插槽,也就是slot,是组件的一块HTML模板,这块模板显示不显示.以及怎样显示由父组件来决定. 实际上,一个slot最核心的两个问题在这里就点出来了,是显示不显示和怎样显示. 由于插槽是一块模板,所 ...
- vue中插槽(slot)的使用
刚学vue的时候,曾经学习过slot插槽的使用,但是后面接触的不多,因为之前我还没使用element-ui... 但是使用了element-ui之后,里面的许多组件,有时候会使用插槽,为了巩固一下插槽 ...
- vue中插槽的使用场景
效果图:
- vue中具名插槽的使用
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- vue 中的slot属性(插槽)的使用
总结如下: VUE中关于插槽的文档说明很短,语言又写的很凝练,再加上其和方法,数据,计算机等常用选项在使用频率,使用先后上的差别,这就有可能造成初次接触插槽的开发者容易产生“算了吧,回头再学,反正已经 ...
- vue中的slot(插槽)
vue中的插槽----slot 什么是插槽? 插槽(Slot)是Vue提出来的一个概念,正如名字一样,插槽用于决定将所携带的内容,插入到指定的某个位置,从而使模板分块,具有模块化的特质和更大的重用性. ...
- Vue中的作用域插槽
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...
- vue中的插槽(slot)
vue中的插槽,指的是子组件中提供给父组件使用的一个占位符,用<slot></slot>标签表示,父组件可以在这个占位符中填充任何模板代码,比如HTML.组件等,填充的内容会替 ...
随机推荐
- CVE-2016-2183(SSL/TLS)漏洞的办法
运行gpedit.msc,打开"本地组策略编辑器" 启用"SSL密码套件顺序" TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256_ ...
- 《Unix/Linux系统编程》第八周学习笔记
<Unix/Linux系统编程>第八周学习笔记 时钟服务函数 gettimeodfay() 获取系统时间 settimeofday() 设置系统时间 time() 以秒为单位返回当前时间 ...
- podman 入门实战
一入编程深似海,从此节操是路人. 最近使用podman,就想着写一篇总结性的笔记,以备后续参考.就如同写代码,不写注释,过了一段时间可能会想这是我写的吗?不会吧,还要理一下逻辑才能读懂,不利于后期维护 ...
- MySQL学习(十三)InnoDB
参考博客: https://my.oschina.net/wangzemin/blog/5346534 InnoDB之BufferPool https://juejin.cn/post/7007421 ...
- 11.7 消除闪烁(1)(harib08g)
ps:看书比较急,有错误的地方欢迎指正,不细致的地方我会持续的修改 11.7 消除闪烁(1)(harib08g) 11.6 高速计数器(harib08f)存在闪烁的问题,产生原因:刷新时会从低到高进行 ...
- File 未释放文件权柄问题处理
Unreleased Resource: Files Abstract 程序可能无法释放某个文件句柄. Explanation 程序可能无法成功释放某一个文件句柄. 资源泄露至少有两种常见的原因: - ...
- 跳出思维的“盒子”,聊聊 RTE 应用创新大赛的那些作品
由声网Agora 与环信联合主办的"RTE 2021 编程挑战赛"已圆满落幕.在今年的大赛中,来自行业中不同领域的专家参与了决赛评选,包括 Linux 中国技术社区技术负责人 白宦 ...
- GaussDB(DWS)运维:导致SQL执行不下推的改写方案
摘要:本文就针对因USING子句的书写方式可能导致MERGE INTO语句的执行不下推的场景,对USING子句的SQL语句进行改写一遍,整个SQL语句可以下推. 本文分享自华为云社区<Gauss ...
- SpringBoot——模板引擎及原理
更多内容,前往IT-BLOG 一.模板引擎的思想 模板是为了将显示与数据分离,模板技术多种多样,但其本质都是将模板文件和数据通过模板引擎生成最终的 HTML代码. 二.SpringBoot模板引擎 S ...
- JVM 频繁 FULL GC 快速排查整理
在分享此案例前,先聊聊哪些场景会导致频繁Full GC: 内存泄漏(代码有问题,对象引用没及时释放,导致对象不能及时回收)死循环大对象程序执行了System.gc() 尤其是大对象,80%以上的情况就 ...