当前位置: 首页 > news >正文

【Vue3】第四篇

Vue3学习第四篇

  • 01. 插槽Slots
  • 02. 插槽Slots(续集)
  • 03. 插槽Slots(再续集)
  • 04. 组件生命周期
  • 05. 生命周期应用
  • 06. 动态组件
  • 07. 组件保持存活
  • 08. 异步组件
  • 09. 依赖注入
  • 10. Vue应用

01. 插槽Slots

在这里插入图片描述
模板内容:html结构,可能是div标签等

也就是说插槽是用来显示html结构的。

实操:

App.vue中:
在这里插入图片描述
ShotsBase组件中:
在这里插入图片描述
结果:在这里插入图片描述

所以,<slot></slot>在哪,html结构就在哪显示:
在这里插入图片描述

02. 插槽Slots(续集)

(1)渲染作用域:
在这里插入图片描述
在这里插入图片描述

如果这个标签内容不是写死的,那么应该由父组件来动态传递数据还是由子组件呢

答案是:父组件

在这里插入图片描述

因为插槽是在子组件渲染

在这里插入图片描述

(2)默认内容
在这里插入图片描述

(3)具名插槽

组件之间传递这个插槽,内容不是固定的,可以是一个/两个/三个,且是可以分开的。

下图中传递了两个插槽,每个插槽分别有两个h3标签,我们希望能各渲染一个:
在这里插入图片描述
在这里插入图片描述
但是结果重复渲染了:
在这里插入图片描述

接下来我们使用具名插槽
在这里插入图片描述
在这里插入图片描述
结果如我们所愿:
在这里插入图片描述

注意(简写):
在这里插入图片描述v-slot在父组件中)

03. 插槽Slots(再续集)

在这里插入图片描述
所以我们的需求是:把子组件数据传递给插槽
在这里插入图片描述
怎么实现呢?

简记为:子传父,父合并,父传子,子渲染

在这里插入图片描述

父组件用一个名为“slotProps”接收(也可自己起名),slotProps是一个对象,对象里面包含子元素传递过来的那一条数据
如下形式便可拿到数据并显示在页面中。在这里插入图片描述

如果是具名插槽呢?如下:
在这里插入图片描述
在这里插入图片描述

04. 组件生命周期

从组件被创建那一刻开始,到组件被卸载那一刻,这是组件的整个生命周期。
在这里插入图片描述

在vue的生命周期中,有很多关键节点。比如我们所说的组件被创建的时候、组件初次被渲染了、组件的数据被更新了、组件销毁了。

生命周期钩子函数是自动执行的,不需要被调用。

(记:粉红色部分)
在这里插入图片描述

在这里插入图片描述

实操:(下面部分以此类推,就没有截出来了)
在这里插入图片描述

运行:

控制台自动跳出前四条数据
点击“更新数据”按钮,页面数据由“更新之前”改为“更新之后”,
控制台跳出如下两条数据(最后两条)
在这里插入图片描述

05. 生命周期应用

在这里插入图片描述

(1)应用一:
在这里插入图片描述
在这里插入图片描述

(2)应用二:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
结果:
在这里插入图片描述

不过,created不太好,改为mounted更好。
因为created的时候,ui还没渲染,mounted的时候才渲染。
(上图中数据能出来,是因为数据量小)

对于网页而言,先把组件结构渲染出来重要,而不是先拿到数据。
在这里插入图片描述

所以,我们应该用mounted,把整个结构已经渲染完成,渲染完成之后再去获取数据,再把页面渲染到浏览器界面之上。

06. 动态组件

有些场景会需要两个组件间来回切换。
在这里插入图片描述

结果:
在这里插入图片描述

07. 组件保持存活

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
切换回A(卸载B)没加载那两句话,是因为B组件中没有写入控制台打印输出那两句话。

在这里插入图片描述
加上keep-alive之后,切换到B时A不会被卸载,自然切换回A时数据和保持被操作后的一样。

08. 异步组件

同步与异步的概念:
同步:多个功能,ABC三个功能,排队按顺序执行。
异步:多个功能,ABC三个功能同时进行。

异步组件的目的:优化组件的性能。或者说优化项目的性能

在这里插入图片描述

同步组件:假如我们的项目中,有100个组件,如果全都以正常组件加载的方式加载,项目一旦运行,100个组件会同时被加载出来,然后项目才能正常运行。
异步组件:用到哪个组件加载哪个。
(优势:加开项目时,加载会更快,符合业界的需求)

实现方式:
在这里插入图片描述

没有使用异步组件时,打开网络请求
在这里插入图片描述
然后把这些清理掉,再做组件切换的时候,会发现,没有新的网络请求再形成了
说明第一次打开这个项目的时候,所有的内容都已经被加载,包含A、B组件。

使用异步组件之后:
在这里插入图片描述
重新请求了一次B组件。说明第一次只加载了A组件。

09. 依赖注入

在这里插入图片描述
解决方案:
在这里插入图片描述
在这里插入图片描述

也可以传递动态数据:
在这里插入图片描述
子组件亦如此:
(接收到的数据也可以放入data内处理然后再返回)
在这里插入图片描述
在这里插入图片描述

注意:组件之间一定要有关系才能传递。
在这里插入图片描述

还有一个需要注意的细节:
在这里插入图片描述
实操:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

10. Vue应用

这节课其实是要告诉大家,Vue项目是从哪开始执行的。

先前讲的都是Vue的API,并没有说Vue是哪开始入口,然后一步一步执行下来的。一直都是利用Vue的脚手架 或者是 Vue的工具来创建好项目,然后直接在项目当中修改。

我们首先要说的是应用实例
在这里插入图片描述
ps:这段代码存在于main.js中。

什么是应用实例呢?
你可以把应用实例理解为Vue的实例对象,因为是Vue的项目,所有每一个Vue项目肯定都要有一个Vue的实例,从Vue的实例开始一步步往下执行

在这里插入图片描述

代码解读:
从Vue中引入createApp,然后用它来创建一个App对象
(Vue的实例对象)

对比两图,可以看出App是根组件,那么,什么是根组件呢?
在这里插入图片描述

因为Vue是组件化开发,Vue的项目都是从第一个组件开始的,而我们这个App。vue就是第一个组件,也被称为根组件
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

当然,单纯把Vue项目创建出来,并把根组件传入这个项目还不算是完成。还要做一件事,那就是挂载应用

在这里插入图片描述

必须要执行app.mount并挂载一个根的容器。

因为Vue并不能直接浏览器中运行,必须挂载在容器当中。
在这里插入图片描述

为什么是#app?它是用来找index.html的。
在这里插入图片描述
日后,vue中所有的页面的内容都将放在这个div容器当中呈现。

所以,运行项目时:
在这里插入图片描述
其实真正的运行入口是index.html文件,所有的内容都挂在里面。

此外,注意:
在这里插入图片描述
构建工具 : (Webpack和Vite) 用来打包以及发布。

其实,我们所有所写的Vue代码,最终都会被编译成一个main.js文件。

然后我们在html中把它引入进来,整个程序就正常运行了。

相关文章:

【Vue3】第四篇

Vue3学习第四篇 01. 插槽Slots02. 插槽Slots&#xff08;续集&#xff09;03. 插槽Slots&#xff08;再续集&#xff09;04. 组件生命周期05. 生命周期应用06. 动态组件07. 组件保持存活08. 异步组件09. 依赖注入10. Vue应用 01. 插槽Slots 模板内容&#xff1a;html结构&#…...

Chromium HTML5 新的 Input 类型tel对应c++

一、Input 类型: tel <!DOCTYPE html> <html> <head> <meta charset"utf-8"> <title>test</title> </head> <body><form action"demo-form.php">电话号码: <input type"tel" name…...

JVM—类加载器、双亲委派机制

目录 什么是类加载器 类加载器的分类 Bootstrap启动类加载器 通过启动类加载器加载用户jar包 Extension扩展类加载器和Application应用程序类加载器 通过扩展类加载器加载用户jar包 双亲委派机制 打破双亲委派机制 自定义类加载器 线程上下文类加载器 Osgi框架的类加…...

笔试题 求空格分割的英文句子中,最大单词长度。

求空格分割的英文句子中&#xff0c;最大单词长度。例如:“this is a word”&#xff0c;最大单词长度为4。要求:不能用 split 函数对字符串进行切分&#xff0c;算法复杂度为o(n) public class MaxWordLength { public static int maxWordLength(String sentence) { if (se…...

【笔记】大模型长度外推技术 NTK-Aware Scaled RoPE

NTK-Aware Scaled RoPE 正弦编码(Sinusoidal)旋转位置编码RoPE编码步骤&#xff1a;旋转位置编码的优势 NTK-Aware Scaled RoPE直接外推线性内插进制转换高频外推、低频内插的理解位置编码 总结参考&#xff1a; 长度外推技术是自然语言处理&#xff08;NLP&#xff09;领域中&…...

前端 eslint 配置,以及在git提交之前自动format

目录 1、配置eslint步骤 1、eslint安装配置步骤 2、配置scripts步骤 3、测试eslint 2、配置git-hook1、安装环境2、最终效果 众所周知&#xff0c;前端项目可以在报很多error的情况下运行。但是良好的代码规范仍然有利于项目的开发维护&#xff0c;这里提供我的规范&#xff0c…...

2024.10.9华为留学生笔试题解

第一题无线基站名字相似度 动态规划 考虑用动态规划解决 char1=input().strip() char2=input().strip() n,m=len(char1),len(char2) dp=[[0]*(m+1) for _ in range(n+1)] #dp[i][j]定义为以i-1为结尾的char1 和以 j-1为结尾的char2 的最短编辑距离 setA = set(wirel@com) set…...

利用ADPF性能提示优化Android应用体验

Android Dynamic Performance Framework(ADPF)是google推广的一套用于优化散热以及CPU性能的动态性能框架。本文主要介绍其中的performance hint的部分。 1、为何引入ADPF 我们都知道&#xff0c;在大多数设备上&#xff0c;Android 会动态调整CPU的频率和核心类型。如果work l…...

论文阅读 - Pre-trained Online Contrastive Learning for Insurance Fraud Detection

Pre-trained Online Contrastive Learning for Insurance Fraud Detection| Proceedings of the AAAI Conference on Artificial Intelligence 目录 摘要 Introduction Methodology Problem Formulation Pre-trained Model for Enhanced Robustness Detecting Network a…...

【最全基础知识2】机器视觉系统硬件组成之工业相机镜头篇--51camera

机器视觉系统中,工业镜头作为必备的器件之一,须和工业相机搭配。工业镜头是机器视觉系统中不可或缺的重要组成部分,其质量和性能直接影响到整个系统的成像质量和检测精度。 目录 一、基本功能和作用 二、分类 1、按成像方式分 2、按焦距分 3、按接口类型分 4、按应用…...

虚拟机WIN7安装PADS VX24 出现脚本故障 IPW213

用虚拟机安装WIN7&#xff0c;再开始安装PADS V24出现脚本故障IPW213 有去.NetFramework3.5 仍然没有效果 Download Microsoft .NET Framework 3.5 from Official Microsoft Download Center 最终用360驱动大师检测了下 发现有些必备组件没有安装&#xff0c;安装之后重启。 …...

Java正则表达式详解万字笔记内容丰富

正则表达式 1.1 正则表达式的概念及演示 在Java中&#xff0c;我们经常需要验证一些字符串&#xff0c;例如&#xff1a;年龄必须是2位的数字、用户名必须是8位长度而且只能包含大小写字母、数字等。正则表达式就是用来验证各种字符串的规则。它内部描述了一些规则&#xff0c…...

文件属性与目录

⚫ Linux 系统的文件类型&#xff1b; 普通文件&#xff1a;存储数据&#xff0c;如文本文件、可执行文件等。 目录&#xff1a;用于组织文件和其他目录的特殊文件。 符号链接&#xff1a;指向另一个文件或目录的引用&#xff0c;类似于 Windows 中的快捷方式。 硬链接&#x…...

5G 基站SCTP

如何实现SCTP多归属链路对接 文章目录 ​​前言​​​​一、SCTP是什么&#xff1f;​​​​二、lksctp​​​​三.sctp初始化​​​​四.绑定本端两个IP​​​​ 五.与对端建链​​​​六.设置主要路径​​​​七.设置是否启用心跳​​​​八.关于防火墙的配置​ ​总结​​ …...

MFC的SendMessage与PostMessage的区别

一、SendMessage 同步操作&#xff1a; SendMessage 是一个同步函数&#xff0c;它会将消息发送到指定的窗口&#xff0c;并等待该窗口的消息处理过程完成&#xff0c;然后返回。这意味着它会阻塞当前线程&#xff0c;直到消息处理完成。 直接调用&#xff1a; SendMessage 会…...

学习虚幻C++开发日志——基础案例(持续更新中)

官方文档&#xff1a;虚幻引擎C编程教程 | 虚幻引擎 5.5 文档 | Epic Developer Community | Epic Developer Community 1.物体上下起伏并旋转 1.1第一种写法 创建一个继承于Actor的类&#xff0c;并为新的Actor命名为FloatingActor&#xff0c;然后点击Create Class 重新…...

【CUDA代码实践03】m维网格n维线程块对二维矩阵的索引

文章目录 一、数据存储方式二、二维网格二维线程块三、二维网格一维线程块四、一维网格一维线程块 为了方便下次找到文章&#xff0c;也方便联系我给大家提供帮助&#xff0c;欢迎大家点赞&#x1f44d;、收藏&#x1f4c2;和关注&#x1f514;&#xff01;一起讨论技术问题&am…...

VSCode Qt6安装OpenSSL

报错 Could NOT find OpenSSL, try to set the path to OpenSSL root folder in thesystem variable OPENSSL_ROOT_DIR (missing: OPENSSL_CRYPTO_LIBRARYOPENSSL_INCLUDE_DIR SSL Crypto) (Required is at least version "3.0")问题确认 这个错误显示在Windows环境…...

JAVA学习-练习试用Java实现“定义一个用户类,包含用户名和密码”

问题&#xff1a; 定义一个用户类&#xff08;User&#xff09;&#xff0c;包含用户名&#xff08;username&#xff09;和密码&#xff08;password&#xff09;属性&#xff0c;提供静态方法验证密码是否有效&#xff08;长度至少为6&#xff09;&#xff0c;并提供getter和…...

大数据之VIP(Virtual IP,虚拟IP)负载均衡

VIP&#xff08;Virtual IP&#xff0c;虚拟IP&#xff09;负载均衡是一种在计算机网络中常用的技术&#xff0c;用于将网络请求流量均匀地分散到多个服务器上&#xff0c;以提高系统的可扩展性、可靠性和性能。以下是对VIP负载均衡的详细解释&#xff1a; 一、VIP负载均衡的基…...

LBE-LEX系列工业语音播放器|预警播报器|喇叭蜂鸣器的上位机配置操作说明

LBE-LEX系列工业语音播放器|预警播报器|喇叭蜂鸣器专为工业环境精心打造&#xff0c;完美适配AGV和无人叉车。同时&#xff0c;集成以太网与语音合成技术&#xff0c;为各类高级系统&#xff08;如MES、调度系统、库位管理、立库等&#xff09;提供高效便捷的语音交互体验。 L…...

web vue 项目 Docker化部署

Web 项目 Docker 化部署详细教程 目录 Web 项目 Docker 化部署概述Dockerfile 详解 构建阶段生产阶段 构建和运行 Docker 镜像 1. Web 项目 Docker 化部署概述 Docker 化部署的主要步骤分为以下几个阶段&#xff1a; 构建阶段&#xff08;Build Stage&#xff09;&#xff1a…...

工业安全零事故的智能守护者:一体化AI智能安防平台

前言&#xff1a; 通过AI视觉技术&#xff0c;为船厂提供全面的安全监控解决方案&#xff0c;涵盖交通违规检测、起重机轨道安全、非法入侵检测、盗窃防范、安全规范执行监控等多个方面&#xff0c;能够实现对应负责人反馈机制&#xff0c;并最终实现数据的统计报表。提升船厂…...

iPhone密码忘记了办?iPhoneUnlocker,iPhone解锁工具Aiseesoft iPhone Unlocker 高级注册版​分享

平时用 iPhone 的时候&#xff0c;难免会碰到解锁的麻烦事。比如密码忘了、人脸识别 / 指纹识别突然不灵&#xff0c;或者买了二手 iPhone 却被原来的 iCloud 账号锁住&#xff0c;这时候就需要靠谱的解锁工具来帮忙了。Aiseesoft iPhone Unlocker 就是专门解决这些问题的软件&…...

Linux-07 ubuntu 的 chrome 启动不了

文章目录 问题原因解决步骤一、卸载旧版chrome二、重新安装chorme三、启动不了&#xff0c;报错如下四、启动不了&#xff0c;解决如下 总结 问题原因 在应用中可以看到chrome&#xff0c;但是打不开(说明&#xff1a;原来的ubuntu系统出问题了&#xff0c;这个是备用的硬盘&a…...

WEB3全栈开发——面试专业技能点P2智能合约开发(Solidity)

一、Solidity合约开发 下面是 Solidity 合约开发 的概念、代码示例及讲解&#xff0c;适合用作学习或写简历项目背景说明。 &#x1f9e0; 一、概念简介&#xff1a;Solidity 合约开发 Solidity 是一种专门为 以太坊&#xff08;Ethereum&#xff09;平台编写智能合约的高级编…...

蓝桥杯3498 01串的熵

问题描述 对于一个长度为 23333333的 01 串, 如果其信息熵为 11625907.5798&#xff0c; 且 0 出现次数比 1 少, 那么这个 01 串中 0 出现了多少次? #include<iostream> #include<cmath> using namespace std;int n 23333333;int main() {//枚举 0 出现的次数//因…...

听写流程自动化实践,轻量级教育辅助

随着智能教育工具的发展&#xff0c;越来越多的传统学习方式正在被数字化、自动化所优化。听写作为语文、英语等学科中重要的基础训练形式&#xff0c;也迎来了更高效的解决方案。 这是一款轻量但功能强大的听写辅助工具。它是基于本地词库与可选在线语音引擎构建&#xff0c;…...

安卓基础(aar)

重新设置java21的环境&#xff0c;临时设置 $env:JAVA_HOME "D:\Android Studio\jbr" 查看当前环境变量 JAVA_HOME 的值 echo $env:JAVA_HOME 构建ARR文件 ./gradlew :private-lib:assembleRelease 目录是这样的&#xff1a; MyApp/ ├── app/ …...

sipsak:SIP瑞士军刀!全参数详细教程!Kali Linux教程!

简介 sipsak 是一个面向会话初始协议 (SIP) 应用程序开发人员和管理员的小型命令行工具。它可以用于对 SIP 应用程序和设备进行一些简单的测试。 sipsak 是一款 SIP 压力和诊断实用程序。它通过 sip-uri 向服务器发送 SIP 请求&#xff0c;并检查收到的响应。它以以下模式之一…...