插槽的基本使用和作用域插槽

news/2024/12/22 15:16:44/

1.编译作用域

父级模板里的所有内容都是在父级作用域中编译的;子模板里的所有内容都是在子作用域中编译的。

即父子组件只能使用各自作用域的数据

2.插槽的后备内容(slot中默认配置内容)

可以在slot中提前设置一段内容作为默认值,当父组件提供插槽内容时将会被覆盖

<!--父组件 -->
<pop-cart class="pop-cart" ></pop-cart>
    <!--子组件-->
<slot name="cartPop">这是子组件插槽的默认内容</slot>

以下会被覆盖

      <pop-cart ref="popCart" class="pop-cart" ><template v-slot:cartPop>这是父组件插槽内容</template></pop-cart>

3.vm.$slots  API 的形式获取子组件插槽内容

vm.$slots用来访问被插槽分发的内容。(在父组件中获取子组件的虚拟DOM)

插槽没有命名时:v-slot:default获取所有子组件插槽的实例。如:this.$refs.child.$slots()

插槽有名字时:v-slot:name

<template>
<!-- BlogPost.vue -->
<div><slot name="header"></slot><slot></slot><slot name="footer"></slot></div>
</template>
<blog-post><template v-slot:header><h1>About Me</h1></template><p>Here's some page content, which will be included in vm.$slots.default, because it's not inside a named slot.</p><template v-slot:footer><p>Copyright 2016 Evan You</p></template><p>If I have some content down here, it will also be included in vm.$slots.default.</p>.
</blog-post><script>
import Vue from 'vue'
Vue.component('blog-post', {render: function (createElement) {var header = this.$slots.headervar body   = this.$slots.defaultvar footer = this.$slots.footerreturn createElement('div', [createElement('header', header),createElement('main', body),createElement('footer', footer)])}
})
</script>

4.作用域插槽

作用域插槽能够实现在父组件中获取子组件的数据

当前插槽绑定数据<slot :user="user" name="userCard">

父组件中通过<template v-slot:userCard="user">{{user}}</template>进行获取和使用

  v-slot:default默认插槽

  v-slot:header具名插槽

实际应用场景:

elementUI表格按钮中获取父组件中的数据,再传入按钮中

<!-- 子组件 -->
<span><slot :user="user">{{ user.lastName }}</slot>
</span>
<!-- 父组件中 -->
<current-user><template v-slot:default="slotProps">{{ slotProps.user.firstName }}</template>
</current-user>


http://www.ppmy.cn/news/1167640.html

相关文章

AttributeError: ‘version_info‘ object has no attribute ‘__version__‘

问题描述 这个问题相对来说比较简单&#xff0c;其实还是版本的问题AttributeError: version_info object has no attribute __version__&#xff0c;很明显是因为版本迭代&#xff0c;导致部分版本省略了。 AttributeError: version_info object has no attribute __version__…

【2023淘宝双十一活动什么时间开始?天猫双十一2023具体时间安排

2023双十一活动什么时间开始&#xff1f;让我们先来了解一下双十一的优惠活动以及玩法吧。请收藏这份2023年淘宝天猫双十一玩法优惠攻略&#xff0c;让你轻松购得心仪的商品&#xff01; 红包派送 活动期间&#xff0c;每天都可以领取超级红包&#xff01;请注意&#xff0c…

【学习草稿】bert文本分类

https://github.com/google-research/bert https://github.com/CyberZHG/keras-bert 在 BERT 中&#xff0c;每个单词的嵌入向量由三部分组成&#xff1a; Token 嵌入向量&#xff1a;该向量是 WordPiece 分词算法得到的子单词 ID 对应的嵌入向量。 Segment 嵌入向量&#x…

面试算法32:有效的变位词

题目 给定两个字符串s和t&#xff0c;请判断它们是不是一组变位词。在一组变位词中&#xff0c;它们中的字符及每个字符出现的次数都相同&#xff0c;但字符的顺序不能相同。例如&#xff0c;"anagram"和"nagaram"就是一组变位词。 分析 如果只考虑英文…

CV计算机视觉每日开源代码Paper with code速览-2023.10.20

精华置顶 墙裂推荐&#xff01;小白如何1个月系统学习CV核心知识&#xff1a;链接 点击CV计算机视觉&#xff0c;关注更多CV干货 论文已打包&#xff0c;点击进入—>下载界面 点击加入—>CV计算机视觉交流群 1.【目标检测】Click on Mask: A Labor-efficient Annotati…

PCA降维可视化

二维 import pandas as pd import warnings warnings.filterwarnings("ignore")df pd.read_csv(data/data.csv).dropna() features df.columns[:-1] X, y df[features], df[label]from sklearn.preprocessing import MinMaxScaler # 创建MinMaxScaler对象 scaler…

【Python numpy】创建Ndarray数组对象

文章目录 前言一、numpy.array()函数1.1 函数基本介绍1.2 示例代码创建一个包含整数的一维数组创建一个指定数据类型的一维数组创建一个多维数组创建一个具有最小维度要求的数组 二、numpy.empty()函数2.1 empty()函数介绍2.2 示例代码创建一个未初始化的一维数组创建一个未初始…

【自用】C++ 知识点总结Ⅱ:异常、IO流、类型转化、C++11新特新、STL、设计模式...(待更新)

文章目录 五、异常六、IO 流七、C 类型转化static_castdynamic_castconst_castreinterpret_caststatic_cast 和dynamic_cast 的区别&#xff1f; 八、C 11智能指针&#x1f53a;什么是循环引用&#xff1f;如何解决&#xff1f;解决原理&#xff1f;&#x1f53a;定制删除器&am…