【Vue3】3-5 :组件内容的组合与分发

news2024/11/20 3:23:48

文章目录

    • 前言
    • 问题
    • 本节内容
  • 插槽 slot
      • >> 使用
      • >> 效果 (前后相同)
  • 插槽的特性
    • 实战
      • > 实例 1:【作用域】根组件中渲染
      • > 效果
      • > 原因
      • >> 实例 2:【具名插槽】即多个插槽
      • > 效果
      • >> 实例 3:【作用域插槽】插槽能访问子组件的数据
      • > 代码
      • > 效果

前言

上节,我们学习了

  • 组件之间的通信,让组件之间实现了不同的需求,我们通过给组件添加不同的属性来实现

问题

1:在Vue中如何去传递不同的组件结构呢?

  • 这就涉及到了组件内容的分发处理,使用插槽(slot)。

本节内容


插槽 slot

在Vue中是通过 插槽slot方式来进行分发处理的

  • Vue 实现了一套内容分发的 API,将<slot>元素作为承载分发内容的出口。
  • 这套 API 的设计灵感源自 Web Components 规范草案

>> 使用

组件内的结构,<p>logo</p> 会被分发到<slot></slot>所在的区域

>> 效果 (前后相同)

插槽的特性

  • 渲染作用域 -> 插槽只能获取当前组件的作用域
  • 具名插槽 -> 处理多个插槽的需求,通过 v-slot 指令实现,简写为 #
  • 作用域插槽 -> 插槽能访问子组件的数据

实战

> 实例 1:【作用域】根组件中渲染

> 效果

> 原因

  • <p>logo, {{ message }}, {{ count }}</p>的作用域属于根组件,只能调用根组件的 return

>> 实例 2:【具名插槽】即多个插槽

  • 定义:<template v-slot:title> 简写为:<template #:title>
  • 使用:<slot name=“title”>

> 效果

>> 实例 3:【作用域插槽】插槽能访问子组件的数据

  • Step 1:定义数据 组件MyHead中返回 'list: ['首页', '视频', '音乐']
  • Step 2:传递给slot <slot name="list" :list="list"></slot>
  • Step 3:传递给元素 <template #list="{ list }">
  • Step 4:处理 <li v-for="item in list">{{ item }}</li>可省略

> 代码

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Document</title>
  <script src="../vue.global.js"></script>
</head>
<body>
  <div id="app">
    <my-head>
    
      <template #title="{ count }">
        <p>logo, {{ message }}, {{ count }}</p>
      </template>
      <template #list="{ list }">
        <ul>
          <li v-for="item in list">{{ item }}</li>
        </ul>
      </template>

    </my-head>
  </div>
  <script>
    let app = Vue.createApp({
      data(){
        return {
          message: 'hello'
        }
      }
    })

    app.component('MyHead', {
      data(){
        return {
          count: 123,
          list: ['首页', '视频', '音乐']
        };
      },
      template: `
        <header>
          <slot></slot>
          <slot name="title" :count="count"></slot>
          <slot name="list" :list="list"></slot>
        </header>
      `,
    });
    
    let vm = app.mount('#app');
  </script>
</body>
</html>

> 效果

公众号 回复 idea 获取webstorm 2023.3.4 永久免费使用
公众号 回复 vip 获取欧洲正版,全家桶、全插件、全主题,每年只需一杯咖啡

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

kubectl 声明式资源管理方式

目录 介绍 YAML 语法格式 命令 应用yaml文件指定的资源 删除yaml文件指定的资源 查看资源的yaml格式信息 查看yaml文件字段说明 查看 api 资源版本标签 修改yaml文件指定的资源 离线修改 在线修改 编写yaml文件 创建资源对象 查看创建的pod资源 创建service服务对…

WordPress 插件存在漏洞,500 万网站面临严重安全风险

网络安全研究人员近期发现 WordPress LiteSpeed Cache 插件中存在一个安全漏洞&#xff0c;该漏洞被追踪为 CVE-2023-40000&#xff0c;未经身份验证的威胁攻击者可利用该漏洞获取超额权限。 LiteSpeed Cache 主要用于提高网站性能&#xff0c;据不完全统计已经有 500 多万安装…

K8s Pod资源管理组件

目录 Pod基础概念 在Kubrenetes集群中Pod有如下两种使用方式 pause容器使得Pod中的所有容器可以共享两种资源 网络 存储 总结 kubernetes中的pause容器主要为每个容器提供功能 Kubernetes设计这样的Pod概念和特殊组成结构的用意 通常把Pod分为以下几类 自主式Pod 控…

幻兽帕鲁(Palworld 1.4.11.5.0)私有服务器搭建(docker版)

文章目录 说明客户端安装服务器部署1Panel安装和配置docker服务初始化设置设置开机自启动设置镜像加速 游戏服务端部署游戏服务端参数可视化配置 Palworld连接服务器问题总结 服务端升级&#xff08;1.5.0&#xff09; 说明 服务器硬件要求&#xff1a;Linux系统/Window系统&a…

振动解调用的包络谱计算

1缘起 在振动分析中&#xff0c;对于一些高频频点的分析计算&#xff0c;使用包络谱技术&#xff0c;进而得到特化谱是最适宜的。 1.1 包络谱是什么样子的&#xff1f; 我们看matlab信号分析中提供的一个实例&#xff1a; https://www.mathworks.com/help/signal/ug/comput…

前端JS 时间复杂度和空间复杂度

时间复杂度 BigO 算法的时间复杂度通常用大 O 符号表述&#xff0c;定义为 T(n) O(f(n)) 实际就是计算当一个一个问题量级&#xff08;n&#xff09;增加的时候&#xff0c;时间T增加的一个趋势 T(n)&#xff1a;时间的复杂度&#xff0c;也就相当于所消耗的时长 O&#xff1…

纯国产轻量化数字孪生:智慧城市、智慧工厂、智慧校园、智慧社区。。。

AMRT 3D数字孪生引擎介绍 AMRT3D引擎是一款融合了眸瑞科技的AMRT格式与轻量化处理技术为基础&#xff0c;以降本增效为目标&#xff0c;支持多端发布的一站式纯国产自研的CS架构项目开发引擎。 引擎包括场景搭建、UI拼搭、零代码交互事件、光影特效组件、GIS/BIM组件、实时数据…

十四、综合项目(斗地主)

综合项目&#xff08;斗地主&#xff09; 1.准备牌、洗牌、发牌、看牌2.对每人手中的牌进行排序2.1 排序方法1&#xff08;利用序号进行排序&#xff09;2.2排序方法2&#xff08;给每一张牌计算价值&#xff09; 3.两个实体类3.1 User3.2 Poker 4.登录页面4.1 验证码代码4.2 登…

【蓝桥杯】快读|min和max值的设置|小明和完美序列|​顺子日期​|星期计算|山

目录 一、输入的三种方式 1.最常见的Scanner的输入方法 2.数据多的时候常用BufferedReader快读 3.较麻烦的StreamTokenizer快读&#xff08;用的不多&#xff09; StreamTokenizer常见错误&#xff1a; 二、min和max值的设置 三、妮妮的翻转游戏 四、小明和完美序列 五…

如何删除视频中不想要的部分?分享实用工具和步骤!

在数字化时代&#xff0c;视频已成为我们生活中不可或缺的一部分。无论是观看电影、记录生活&#xff0c;还是制作专业的广告、教学材料&#xff0c;我们都需要对视频进行编辑处理。其中&#xff0c;删除视频中不想要的部分是最常见的需求之一。那么&#xff0c;如何轻松实现这…

Pytorch添加自定义算子之(5)-配置GPU形式的简单add自定义算子

参考:https://zhuanlan.zhihu.com/p/358778742 一、头文件 命名为:add2.h void launch_add2(float *c,const float *a,const float *b,int n);

Jvm之内存泄漏

1 内存溢出 1.1 概念 java.lang.OutOfMemoryError&#xff0c;是指程序在申请内存时&#xff0c;没有足够的内存空间供其使用&#xff0c;出现OutOfMemoryError。产生该错误的原因主要包括&#xff1a;JVM内存过小。程序不严密&#xff0c;产生了过多的垃圾。 程序体现: 内…

Win UI3开发笔记(四)设置主题续

上文讲到过关于界面和标题栏以及普通文本的主题设置&#xff0c;这篇说一下关于对话框的主题设置。 我最终没找到办法&#xff0c;寻求办法的朋友可以不用接着看了&#xff0c;以下只是过程。 一个对话框包括标题部分、内容部分和按钮部分&#xff0c;其中&#xff0c;在Cont…

论文笔记:A survey on zero knowledge range proofs and applications

https://link.springer.com/article/10.1007/s42452-019-0989-z 描述了构建零知识区间证明&#xff08;ZKRP&#xff09;的不同策略&#xff0c;例如2001年Boudot提出的方案&#xff1b;2008年Camenisch等人提出的方案&#xff1b;以及2017年提出的Bulletproofs。 Introducti…

Python 全栈系列227 部署chatglm3-API接口

说明 上一篇介绍了基于算力租用的方式部署chatglm3, 见文章&#xff1b;本篇接着看如何使用API方式进行使用。 内容 1 官方接口 详情可见接口调用文档 调用有两种方式&#xff0c;SDK包和Http。一般来说&#xff0c;用SDK会省事一些。 以下是Python SDK包的git项目地址 安…

ChatGPT 正测试Android屏幕小组件;联想ThinkBook 推出透明笔记本电脑

▶ ChatGPT 测试屏幕小组件 近日 ChatGPT 正在测试 Android 平台上的屏幕小组件&#xff0c;类似于手机中的悬浮窗&#xff0c;按住 Android 手机主屏幕上的空白位置就可以调出 ChatGPT 的部件菜单。 菜单中提供了许多选项&#xff0c;包括文本、语音和视频查询的快捷方式&…

vue3的echarts从后端获取数据,用于绘制图表

场景需求&#xff1a;后端采用flask通过pymysql从数据库获取数据&#xff0c;并返回给前端。前端vue3利用axios获取数据并运用到echarts绘制图表。 第一步&#xff0c;vue中引入echarts 首先vue下载echarts npm install echarts 然后在main.js文件写如下代码 import {create…

【appium】App类型、页面元素|UiAutomator与appium|App元素定位

目录 一、App前端基础知识 1、App类型划分 2、App类型对比 3、App页面元素 App页面元素分为布局和控件两种 常见布局&#xff1a; 常见控件&#xff1a;定位软件&#xff1a;appium和sdk自带的uiautomatorviewer都可以定位 二、App元素定位 1、id定位 2、text定位 3…

RISC-V SoC + AI | 在全志 D1「哪吒」开发板上,跑个 ncnn 神经网络推理框架的 demo

引言 D1 是全志科技首款基于 RISC-V 指令集的 SoC&#xff0c;主核是来自阿里平头哥的 64 位的 玄铁 C906。「哪吒」开发板 是全志在线基于全志科技 D1 芯片定制的 AIoT 开发板&#xff0c;是目前还比较罕见的使用 RISC-V SoC 且可运行 GNU/Linux 操作系统的可量产开发板。 n…

Linux:Ansible的常用模块

模块帮助 ansible-doc -l 列出ansible的模块 ansible-doc 模块名称 # 查看指定模块的教程 ansible-doc command 查看command模块的教程 退出教程时候建议不要使用ctrlc 停止&#xff0c;某些shell工具会出现错误 command ansible默认的模块,执行命令&#xff0c;注意&#x…