VUE Slot

在某些场景中,我们可能想要为子组件传递一些模板片段,让子组件在它们的组件中渲染这些片段.

<template><h3>ComponentA</h3><ComponentB><h3>插槽传递视图内容</h3></ComponentB>
</template>
<script>
import ComponentB from "./ComponentB.vue"
export default {components: {ComponentB}
}
</script>
<template><h3>ComponentB</h3><slot></slot>
</template>

元素是一个插槽出口 (slot outlet),标示了父元素提供的插槽内容 (slot content) 将在哪里被渲染
在这里插入图片描述

渲染作用域

插槽内容可以访问到父组件的数据作用域,因为插槽内容本身是在父组件模板中定义的

<template><h3>ComponentA</h3><ComponentB><h3>{{ message }}</h3></ComponentB>
</template>
<script>
import ComponentB from "./ComponentB.vue"
export default {data(){return{message:"message在父级"}},components: {ComponentB}
}
</script>
<template><h3>ComponentB</h3><slot></slot>
</template>

默认内容

在外部没有提供任何内容的情况下,可以为插槽指定默认内容

<template><h3>ComponentB</h3><slot>插槽默认值</slot>
</template>

具名插槽

<template><h3>ComponentA</h3><ComponentB><template v-slot:header><h3>标题</h3></template><template v-slot:main><p>内容</p></template></ComponentB>
</template>
<script>
import ComponentB from "./ComponentB.vue"
export default {data(){return{message:"message在父级"}},components: {ComponentB}
}
</script>
<template><h3>ComponentB</h3><slot name="header"></slot><hr><slot name="main"></slot>
</template>

v-slot 有对应的简写 #,因此 可以简写为 <template #header>。其意思就是“将这部分模板片段传入子组件的 header 插槽中”

在这里插入图片描述

<template><h3>ComponentA</h3><ComponentB><template #header><h3>标题</h3></template><template #main><p>内容</p></template></ComponentB>
</template>
<script>
import ComponentB from "./ComponentB.vue"
export default {data(){return{message:"message在父级"}},components: {ComponentB}
}
</script>

在某些场景下插槽的内容可能想要同时使用父组件域内和子组件域内的数据。要做到这一点,我们需要一种方法来让子组件在渲染时将一部分数据提供给插槽
我们也确实有办法这么做!可以像对组件传递 props 那样,向一个插槽的出口上传递 attributes

<template><h3>ComponentA</h3><ComponentB v-slot="slotProps"><h3>{{ message }}-{{ slotProps.text }}</h3></ComponentB>
</template>
<script>
import ComponentB from "./ComponentB.vue"
export default {data(){return{message:"message在父级"}},components: {ComponentB}
}
</script>
<template><h3>ComponentB</h3><slot :text="message"></slot>
</template>
<script>
export default {data(){return{message:"ComponentB中的数据"}}
}
</script>

具名插槽传递数据

<template><h3>ComponentA</h3><ComponentB><template #header="slotProps"><h3>{{ message }}-{{ slotProps.text }}</h3></template></ComponentB>
</template><script>import ComponentB from "./slotTest.vue"export default {data(){return{message:"message在父级"}},components: {ComponentB}}</script>
<template><h3>ComponentB</h3><slot name="header" :text="message"></slot>
</template>
<script>
export default {data(){return{message:"ComponentB中的数据"}}
}
</script>

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/174401.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Web APIs——正则表达式使用

1、什么是正则表达式 正则表达式&#xff08;Regular Expression&#xff09;是用于匹配字符串中字符组合的模式。在JavaScript中&#xff0c;正则表达式也是对象 通常用来查找、替换那些符合正则表达式的文本&#xff0c;许多语言都支持正则表达式 1.1 正则表达式使用场景 例如…

保序回归:拯救你的校准曲线(APP)

保序回归&#xff1a;拯救你的校准曲线&#xff08;APP&#xff09; 校准曲线之所以是评价模型效能的重要指标是因为&#xff0c;校准曲线衡量模型预测概率与实际发生概率之间的一致性&#xff0c;它可以帮助我们了解模型的预测结果是否可信。一个理想的模型应该能够准确地预测…

React的refs和表单组件总结

React的refs和表单组件 react中refs的使用字符串形式的ref react核心就在于虚拟DOM&#xff0c;也就是React中不总是直接操页面的真实DOM元素&#xff0c;并且结合Diffing算法&#xff0c;可以做到最小化页面重绘&#xff0c;但有些时候不可避免我们需要一种方法可以操作我们定…

Linux文件描述符+缓冲区

Linux文件描述符缓冲区 &#x1f4df;作者主页&#xff1a;慢热的陕西人 &#x1f334;专栏链接&#xff1a;Linux &#x1f4e3;欢迎各位大佬&#x1f44d;点赞&#x1f525;关注&#x1f693;收藏&#xff0c;&#x1f349;留言 本博客主要内容讲解了文件描述符以及文件描述符…

快乐数问题

编写一个算法来判断一个数 n 是不是快乐数。 「快乐数」 定义为&#xff1a; 对于一个正整数&#xff0c;每一次将该数替换为它每个位置上的数字的平方和。 然后重复这个过程直到这个数变为 1&#xff0c;也可能是 无限循环 但始终变不到 1。 如果这个过程 结果为 1&#xff…

什么是会话固定以及如何在 Node.js 中防止它

什么是会话固定以及如何在 Node.js 中防止它 在深入讨论之前&#xff0c;我们需要了解会话是什么以及会话身份验证如何工作。 什么是会话&#xff1f; 正如我们所知&#xff0c;HTTP 请求是无状态的&#xff0c;这意味着当我们发送登录请求时&#xff0c;并且我们有有效的用…

office365 outlook邮件无法删除

是否遇到过&#xff0c;office365邮件存储满了&#xff0c;删除邮件无法删除&#xff0c;即便用web方式登录到outlook&#xff0c;删除邮件当时是成功的&#xff0c;但一会儿就回滚回来了&#xff0c;已删除的邮件&#xff0c;你想清空&#xff0c;最后清理后还是回到原样。 请…

Opencv for unity 下载

GitHub - EnoxSoftware/VideoPlayerWithOpenCVForUnityExample: This example shows how to convert VideoPlayer texture to OpenCV Mat using AsyncGPUReadback. OpenCV for Unity | Integration | Unity Asset Store

强化学习:原理与Python实战||一分钟秒懂人工智能对齐

文章目录 1.什么是人工智能对齐2.为什么要研究人工智能对齐3.人工智能对齐的常见方法延伸阅读 1.什么是人工智能对齐 人工智能对齐&#xff08;AI Alignment&#xff09;指让人工智能的行为符合人的意图和价值观。 人工智能系统可能会出现“不对齐”&#xff08;misalign&…

Oracle(18)Auditing

文章目录 一、基础知识1、审计介绍2、Auditing Types 审计类型3、Auditing Guidelines 审计准则4、Auditing Categories 审核类别5、Database Auditing 数据库审计6、Auditing User SYS 审计sys用户7、Getting Auditing Informatio 获取审计信息8、获取审计记录通知 二、基础操…

postgresql实现job的六种方法

简介 在postgresql数据库中并没有想oracle那样的job功能&#xff0c;要想实现job调度&#xff0c;就需要借助于第三方。本人更为推荐kettle&#xff0c;pgagent这样的图形化界面&#xff0c;对于开发更为友好 优势劣势Linux 定时任务&#xff08;crontab&#xff09; 简单易用…

Python入门教程:12个常用基础语法详解

文章目录 前言1.多个字符串组合为一个字符串2. 字符串拆分为子字符串列表3. 统计列表中元素的次数4.使用try-except-else-block模块5. 使用枚举函数得到key/value对6. 检查对象的内存使用情况7. 合并字典8. 计算执行一段代码所花费的时间9. 列表展开10. 列表采样11. 数字化12. …