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.组件等,填充的内容会替 ...
随机推荐
- 手机设置网络代理后,网络不可用之app-jmeter性能测试
1.检查crt证书是否安装 (手机) 2.Jmeter设置HTTP代理端口和ip与手机设置代理参数一致即可
- c# datagridview列宽自适应设置
- SQL SERVER 2014 双机热备操作流程-数据库双向同步 (第二篇:订阅)
1.登录从服务器数据库,从数据库左侧菜单栏找到->复制->本地订阅->右击新建订阅->选择查找SQL Server 发布服务器,数据库服务器名称要是主服务器计算机名称,输入登录 ...
- 使用Python+Appium+夜神模拟器,并连接uiautomatorviewer
本文不介绍安装步骤,实在是太多博文了 一.安装 Python:3.8 Appium:1.22.3 夜神模拟器 node JDK1.8 SDK 二.成功连接模拟器 PytCharm代码如下: # cod ...
- java 通过反射以及MethodHandle执行泛型参数的静态方法
开发过程中遇到一个不能直接调用泛型工具类的方法,因此需要通过反射来摆脱直接依赖. 被调用静态方法示例 public class test{ public static <T> T get( ...
- gogetssl申请的域名证书私钥文件丢了,可以重新申请个吗?
因为gogetssl是不保存我们使用浏览器生成的KEY文件的,CSR文件倒是可以有办法再找到 也就是说Certificate Signing Request(CSR)可以想想办法,但是Your Pri ...
- 实验七:基于REST API的SDN北向应用实践
(一)基本要求 编写Python程序,调用OpenDaylight的北向接口实现以下功能 (1) 利用Mininet平台搭建下图所示网络拓扑,并连接OpenDaylight: (2) 下发指令删除s1 ...
- 修改/编辑jar包
替换或者导入jar包时,jar包被自动压缩,springboot规定嵌套的jar包不能在被压缩的情况下存储. 解决(本文以升级ojdbc包为例): 使用jar命令解压jar包,在压缩包外重新替换jar ...
- webpack之loader与plugin
loader与plugin的区别 loader的作用是将代码进行转换,比如less转成css,一个loader就是一个函数,接收的参数是上一个loader的返回值,loader进行一系列处理后 返回新 ...
- PHP文件及运行(适合PHP初学者)
PHP文件可包含HTML.JavaScript代码和 PHP代码,换句话说PHP 代码可以嵌入HTML文档.PHP文件名以php为后缀. PHP代码以"<?php"开头,以& ...