2021-10-28 vue笔记-组件化开发(六) 插槽(slot):匿名插槽,具名插槽和作用域插槽

2023-10-16 22:32

本文主要是介绍2021-10-28 vue笔记-组件化开发(六) 插槽(slot):匿名插槽,具名插槽和作用域插槽,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

文章目录

        • 0.定义
          • 1.特性
          • 2.理解
          • 3.分类
        • 1.匿名插槽
          • 例子
          • 结果
        • 2.具名插槽
          • 例子:
          • 结果
        • 3.作用域插槽
          • 例子
          • 结果:

0.定义
1.特性

提高组件的重用能力

2.理解

插槽就是在子组件中挖个坑,坑内内容由父组件决定,用<slot></slot>来表示

3.分类

匿名插槽:没给插槽slot起名字
具名插槽:给slot起名字(定义具名插槽:使用到name特性)
作用域插槽:本质是携带信息的匿名插槽

1.匿名插槽
例子
  <div id="app"><header1>官网</header1><p>我是正文</p></div><script>Vue.component('header1', {template: `<div>我是<slot></slot>的header</div>`});var vm = new Vue({el: "#app"});</script>
结果
我是官网的header
我是正文
2.具名插槽

子组件把多个插槽放置在不同地方,父组件根据插槽名字填充对应内容

例子:
    <div id="app"><view1><div>商品参数</div><div><img src="https://ftp.bmp.ovh/imgs/2021/05/b86a125cadd68fb3.png" alt=""></div><div slot="header">我是头部</div><div slot="footer">我是底部</div></view1></div>
</body>
<script>Vue.component('view1', {// 具名插槽:对slot起名字template: `<div><header><slot name="header"></slot></header><main><slot></slot></main><footer><slot name="footer"></slot></footer></div>`});var vm = new Vue({el: "#app"});
</script>
结果

在这里插入图片描述

3.作用域插槽

可以携带数据:子组件提供数据,父组件提供样式

例子
<div id="app"><header1><div slot-scope="df"><h1>查询书籍:{{df.info}}</h1></div></header1>
</div>
<script>Vue.component('header1', {// 作用域插槽:本质是一个携带信息的匿名插槽data() {return {book: 'javascript从入门到精通'}},template: `<div><slot :info="book"></slot>,剩余馆藏:2</div>`});var vm = new Vue({el: "#app"});
</script>
结果:

在这里插入图片描述

这篇关于2021-10-28 vue笔记-组件化开发(六) 插槽(slot):匿名插槽,具名插槽和作用域插槽的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/221211

相关文章

使用Python开发一个带EPUB转换功能的Markdown编辑器

《使用Python开发一个带EPUB转换功能的Markdown编辑器》Markdown因其简单易用和强大的格式支持,成为了写作者、开发者及内容创作者的首选格式,本文将通过Python开发一个Markd... 目录应用概览代码结构与核心组件1. 初始化与布局 (__init__)2. 工具栏 (setup_t

Vuex Actions多参数传递的解决方案

《VuexActions多参数传递的解决方案》在Vuex中,actions的设计默认只支持单个参数传递,这有时会限制我们的使用场景,下面我将详细介绍几种处理多参数传递的解决方案,从基础到高级,... 目录一、对象封装法(推荐)二、参数解构法三、柯里化函数法四、Payload 工厂函数五、TypeScript

Spring Shell 命令行实现交互式Shell应用开发

《SpringShell命令行实现交互式Shell应用开发》本文主要介绍了SpringShell命令行实现交互式Shell应用开发,能够帮助开发者快速构建功能丰富的命令行应用程序,具有一定的参考价... 目录引言一、Spring Shell概述二、创建命令类三、命令参数处理四、命令分组与帮助系统五、自定义S

SpringQuartz定时任务核心组件JobDetail与Trigger配置

《SpringQuartz定时任务核心组件JobDetail与Trigger配置》Spring框架与Quartz调度器的集成提供了强大而灵活的定时任务解决方案,本文主要介绍了SpringQuartz定... 目录引言一、Spring Quartz基础架构1.1 核心组件概述1.2 Spring集成优势二、J

利用Python快速搭建Markdown笔记发布系统

《利用Python快速搭建Markdown笔记发布系统》这篇文章主要为大家详细介绍了使用Python生态的成熟工具,在30分钟内搭建一个支持Markdown渲染、分类标签、全文搜索的私有化知识发布系统... 目录引言:为什么要自建知识博客一、技术选型:极简主义开发栈二、系统架构设计三、核心代码实现(分步解析

Python通过模块化开发优化代码的技巧分享

《Python通过模块化开发优化代码的技巧分享》模块化开发就是把代码拆成一个个“零件”,该封装封装,该拆分拆分,下面小编就来和大家简单聊聊python如何用模块化开发进行代码优化吧... 目录什么是模块化开发如何拆分代码改进版:拆分成模块让模块更强大:使用 __init__.py你一定会遇到的问题模www.

Vue3使用router,params传参为空问题

《Vue3使用router,params传参为空问题》:本文主要介绍Vue3使用router,params传参为空问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐... 目录vue3使用China编程router,params传参为空1.使用query方式传参2.使用 Histo

Spring Security基于数据库的ABAC属性权限模型实战开发教程

《SpringSecurity基于数据库的ABAC属性权限模型实战开发教程》:本文主要介绍SpringSecurity基于数据库的ABAC属性权限模型实战开发教程,本文给大家介绍的非常详细,对大... 目录1. 前言2. 权限决策依据RBACABAC综合对比3. 数据库表结构说明4. 实战开始5. MyBA

使用Python开发一个简单的本地图片服务器

《使用Python开发一个简单的本地图片服务器》本文介绍了如何结合wxPython构建的图形用户界面GUI和Python内建的Web服务器功能,在本地网络中搭建一个私人的,即开即用的网页相册,文中的示... 目录项目目标核心技术栈代码深度解析完整代码工作流程主要功能与优势潜在改进与思考运行结果总结你是否曾经

vue使用docxtemplater导出word

《vue使用docxtemplater导出word》docxtemplater是一种邮件合并工具,以编程方式使用并处理条件、循环,并且可以扩展以插入任何内容,下面我们来看看如何使用docxtempl... 目录docxtemplatervue使用docxtemplater导出word安装常用语法 封装导出方