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.组件等,填充的内容会替 ...
随机推荐
- little bug
1 python script can be run in shell console while not in calling shell scripts wfile = codecs.open(n ...
- python中and和or表达式的返回值
a or b 首先明确运算顺序, 从左至右 # 其次只要存在真就会返回真, and返回的是最后一个真, or返回的是第一个真 # 再次, a,b中存在假, 则and返回第一个假, or返回最后一个假 ...
- 用javassist和CGLIB 解决JDK动态代理的缺陷
用 javassist 解决 JDK 动态代理的缺陷 JDK动态代理的缺陷 要求目标类必须实现接口,否则产生不了代理.有些场景下,目标类也要产生代理类但是木有实现接口,这个时间 Java 中有两个常 ...
- C/C++ 顺序表的初始化、添加、插入、删除(删除顺序表中指定的所有元素)
#include <iostream> #include <stdlib.h> #define MAX_SIZE 100 using namespace std; typede ...
- pod进阶
一.Lifecycle 官网:https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle/ 通过前面的分享,关于pod是什么相信看 ...
- jar包与war包的部署
前言 Spring Boot支持传统部署和更现代的部署形式.jar跟war都支持,这里参考springboot参考手册学习记录 传统部署:https://docs.spring.io/spring-b ...
- ServletConfig接口介绍
前言: Servlet 容器初始化 Servlet 时,会为这个 Servlet 创建一个 ServletConfig 对象,并将 ServletConfig 对象作为参数传递给 Servlet .通 ...
- python def函数总结(格式、参数类型、传参方式、全局变量/局部变量、参数类型提示(Type Hints))
简单无参函数 编写脚本test1.py def register_user(): #函数名称只使用小写字母和下划线 """docstring""&qu ...
- Android笔记--图像显示
imageView 具体实现: 注意:图片名称应当为小写的英文字母与数字的结合,当然,二者可以只存在其一 图片的放置的比例:(通过scaleType属性设置) ImageButton ImageBut ...
- ElasticSearch 实现分词全文检索 - 高亮查询
目录 ElasticSearch 实现分词全文检索 - 概述 ElasticSearch 实现分词全文检索 - ES.Kibana.IK安装 ElasticSearch 实现分词全文检索 - Rest ...