Vue学习:18.Vue插槽
Vue 中的插槽(slot)是一种灵活的机制,用于在父组件中将内容传递到子组件的特定位置。它允许我们在子组件中定义可以在父组件中传递任意内容的“插槽”,从而实现更灵活的组件化。
在Vue中,插槽主要有以下几种类型:
默认插槽(Default Slot): 这是最基础的插槽类型。在子组件模板中使用
<slot>标签作为占位符,父组件则可以在使用该子组件时,在其标签内插入任何想要展示的内容。例如:子组件(ChildComponent.vue):
<template>
<div>
<h2>这里是子组件标题</h2>
<slot></slot> <!-- 默认插槽位置 -->
</div>
</template>
父组件(ParentComponent.vue):
<template>
<child-component>
<p>这是来自父组件的内容,将显示在子组件的默认插槽位置。</p>
</child-component>
</template>
2. 具名插槽(Named Slots): 当子组件需要多个插槽时,可以为每个插槽指定一个名称,以便父组件更精确地控制内容的分布。在子组件中使用 <slot name="slotName"> 定义具名插槽,父组件则使用 v-slot:slotName(或简写为 #slotName 从 Vue 2.6 开始)将内容分配到相应的插槽。例如:
子组件(ChildComponent.vue):
<template>
<div>
<h2>这里是子组件标题</h2>
<slot name="header"></slot>
<main>
<slot></slot> <!-- 默认插槽 -->
</main>
<footer>
<slot name="footer"></slot>
</footer>
</div>
</template>
父组件(ParentComponent.vue):
<template>
<child-component>
<template v-slot:header>
<h3>这是头部插槽内容</h3>
</template>
<p>这是主内容区域,将显示在子组件的默认插槽。</p>
<template v-slot:footer>
<p>这是底部插槽内容</p>
</template>
</child-component>
</template>
当子组件需要向插槽内容传递数据时,可以使用作用域插槽(Scoped Slots)。子组件通过 <slot> 元素的 v-bind 向父组件传递数据,父组件则在 v-slot 内部创建一个函数来接收这些数据,并根据这些数据渲染插槽内容。在 Vue 3 中,作用域插槽已被更强大的“插槽props”所替代。
Vue 2 中的作用域插槽示例:
子组件(ChildComponent.vue):
<template>
<ul>
<li v-for="item in items">
<slot :item="item"> <!-- 传递 item 数据给作用域插槽 -->
{{ item.text }} <!-- 默认内容,当父组件未提供插槽内容时使用 -->
</slot>
</li>
</ul>
</template>
<script>
export default {
data() {
return {
items: [{ text: 'Item 1' }, { text: 'Item 2' }]
}
}
}
</script>
父组件(ParentComponent.vue):
父组件中通过【v-slot:item=' '】接收来自子组件的数据,可简写为:【#item=' '】
<template>
<child-component>
<template v-slot:item="slotProps">
<strong>{{ slotProps.item.text }}</strong> <!-- 使用传递过来的数据 -->
</template>
</child-component>
</template>
总结来说,Vue中的插槽机制极大地增强了组件的灵活性与可定制性,使得父组件能够以声明式的方式控制子组件内部的内容布局,同时支持数据的传递,使得父子组件间能更有效地协同工作。
Vue学习:18.Vue插槽的更多相关文章
- Vue学习笔记-Vue.js-2.X 学习(三)===>组件化高级
(四) 组件化高级 1.插槽(slot)的基本使用 A:基本使用: <slot></slot> B:默认置:<slot><h1>中间可以放默认值< ...
- vue学习之vue基本功能初探
vue学习之vue基本功能初探: 采用简洁的模板语法将声明式的将数据渲染进 DOM: <div id="app"> {{ message }} </div> ...
- vue学习目录 vue初识 this指向问题 vue组件传值 过滤器 钩子函数 路由 全家桶 脚手架 vuecli element-ui axios bus
vue学习目录 vue学习目录 Vue学习一之vue初识 Vue学习二之vue结合项目简单使用.this指向问题 Vue学习三之vue组件 Vue学习四之过滤器.钩子函数.路由.全家桶等 Vue学习之 ...
- Vue学习笔记-Vue.js-2.X 学习(六)===>脚手架Vue-CLI(项目说明-Babel)
五 Vue学习-vue-cli脚手架学习(创建只选一个选项:Babel) 1. 项目目录说明 node_modules : 包管理文件夹 public : 静态资源 src : 源代码 gitign ...
- Vue学习笔记-Vue.js-2.X 学习(五)===>脚手架Vue-CLI(PyCharm)
Vue项目在pycharm中配置 退出运行: ctrl+c Vue学习笔记-Vue.js-2.X 学习(六)===>脚手架Vue-CLI(项目说明)
- Vue学习笔记-Vue.js-2.X 学习(四)===>脚手架Vue-CLI(基本工作和创建)
(五) 脚手架Vue-CLI 一 Vue-CLI前提(nodejs和webpack) 二 Vue学习-nodejs按装配置,Node.js 就是运行在服务端的 JavaScript. 1. 去nod ...
- Vue学习笔记-Vue.js-2.X 学习(二)===>组件化开发
===重点重点开始 ========================== (三) 组件化开发 1.创建组件构造器: Vue.extends() 2.注册组件: Vue.component() 3.使用 ...
- Vue学习笔记-Vue.js-2.X 学习(一)===>基本知识学习
一 使用环境: windows 7 64位操作系统 二 IDE:VSCode/PyCharm 三 Vue.js官网: https://cn.vuejs.org/ 四 下载安装引用 方式1:直接 ...
- Vue学习之--------Vue中收集表单数据(使用v-model 实现双向数据绑定、代码实现)(2022/7/18)
文章目录 1.Vue中实现表单数据的收集 1.1 基础知识 1.2 代码实例 1.3 测试效果 1.4 额外插一嘴 1.Vue中实现表单数据的收集 1.1 基础知识 表单中常用的标签:input(输入 ...
- Vue学习之--------Vue中过滤器(filters)的使用(代码实现)(2022/7/18)
1.过滤器 1.1 概念 过滤器: 定义:对要显示的数据进行特定格式化后再显示(适用于一些简单逻辑的处理). 语法: 1.注册过滤器:Vue.filter(name,callback) 或 new V ...
随机推荐
- MaxCompute跨境访问加速解决方案
简介: MaxCompute联合全球加速服务,为有跨境访问需求的MaxCompute客户提供一套高效稳定的跨境访问加速方案. MaxCompute联合全球加速服务,为有跨境访问需求的MaxComput ...
- ChaosBlade:从混沌工程实验工具到混沌工程平台
简介: ChaosBlade 是阿里巴巴 2019 年开源的混沌工程项目,已加入到 CNCF Sandbox 中.起初包含面向多环境.多语言的混沌工程实验工具 chaosblade,到现在发展到面向 ...
- [PHP] 浅谈 Laravel 三大验证方式的区别, auth:api, passport, auth:airlock
auth:api 最先出来,提供了最简单和最实用的方式进行 api 身份校验. 关于它的含义和用法你可以参考以下两篇: 浅谈 Laravel Authentication 的 auth:api 浅谈 ...
- k8s修改iptables模式变成ipvs
环境:https://www.cnblogs.com/yangmeichong/p/16477200.html 一.修改 iptables 变成 ipvs 模式 ipvs 采用的 hash 表,ipt ...
- k8s安全---安全机制之RBAC授权(14)
一.k8s 安全管理:认证.授权.准入控制概述 k8s 对我们整个系统的认证,授权,访问控制做了精密的设置:对于 k8s 集群来说,apiserver 是整 个集群访问控制的唯一入口,我们在 k8s ...
- js原型,原型链(不断补充中)
1.如何使用构造器? function Person(name, age) { this.name = name; this.age = age; } var man = new Person(&qu ...
- Higress 基于自定义插件访问 Redis
简介 基于 wasm 机制,Higress 提供了优秀的可扩展性,用户可以基于 Go/C++/Rust 编写 wasm 插件,自定义请求处理逻辑,满足用户的个性化需求,目前插件已经支持 redis 调 ...
- ITIL4服务价值系统(SVS)与莫比乌斯环:无限服务优化的拓扑之旅
莫比乌斯环:单一而无限的象征 莫比乌斯环,这个拓扑学上的奇观,以其独特的一体两面特性,完美地映射了ITIL4服务价值系统的精髓.它象征着无限.统一和连续性,提示我们看待事物时应超越传统二元对立的视角, ...
- ITIL4之四维模型
ITIL4的一个核心概念.它定义了四个维度(图中的1~4),这四个维度旨在确保组织能够在多方面考虑其服务提供,从而更有效地创造和交付价值. 四维模型的整合流程 确立价值载体:明确信息服务提供商的价值主 ...
- 一键关闭 Win11 系统广告「GitHub 热点速览」
不知道读者中有多少人早已对 Windows 11 系统自带的广告感到厌烦,却又不知道如何关闭它们? 虽然网上有详细的关闭教程,但是都需要逐一手动操作,不是很方便.所以,今天「GitHub 热点速览」给 ...