21.动态组件 component与keep-alive

news2024/11/14 15:23:40

目录

1  基本使用

2  按钮切换组件

3  keep-alive

3.1  在切换组件的时候,默认情况下被切换的组件就会被销毁

3.1.1  数据情况

3.1.2  生命周期函数情况

3.2  使用 keep-alive

3.3  keep-alive的生命周期函数

3.4  缓存指定组件 include

3.5  不缓存指定组件 exclude


动态组件指的是动态切换组件的显示与隐藏,移动端的tabBar可以使用动态组件来做,点击绿色部分的tabBar,tabBar上方的蓝色部分会进行切换

1  基本使用

vue2与vue3的写法上略有不同,vue2可以这样写,这样写就能渲染出来left组件

这样写你在vue3是搞不出来的,但是不会报错

只是渲染不出来

即使你导出了组件的名字也渲染不出来

你需要用data转一下

发现可以渲染出来,只是vue提示你最好使用ref

我们现在加入ref

这样就没有黄色的warning了

我们现在加入RIGHT

  • 这里注册后没有在模板中直接使用是没有报错的

打开后我们将currentComp的值改为RIGHT,发现组件也会随之改变

2  按钮切换组件

在进行判断与赋值的时候不需要再加上ref

点击按钮后可以切换LEFT与RIGHT组件

3  keep-alive

keep-alive是 让组件保持存活的标签,在切换组件的时候,默认情况下被切换的组件就会被销毁

3.1  在切换组件的时候,默认情况下被切换的组件就会被销毁

我们用LEFT验证一下,给LEFT搞一组可变的数据,然后搞两个生命周期函数

3.1.1  数据情况

点击几次 +1

然后点 切换组件

再点切换组件,发现count回到初始值了

3.1.2  生命周期函数情况

刚打开的时候触发第一次created

点击切换后触发unmounted

再点击一次就又创建了一个新的

3.2  使用 keep-alive

这样就能让组件保持存活了

打开后,点击几次

切换后发现没触发unmounted

再切换回来后数据还在

3.3  keep-alive的生命周期函数

我们使用调试工具看组件的时候,发现被隐藏的组件状态未 inactive

关于这个状态,有两个生命周期函数,分别是被缓存(deactivated),被激活(activated)

刚打开页面的时候,首先触发created,然后触发activated

切换组件的时候触发 deactivated

再次切换回来的时候再次触发activated

3.4  缓存指定组件 include

有的组件没有缓存的必要我们可以不缓存

我们现在只想缓存LEFT,其他的全都不缓存

在使用include前,一定要先给组件名字,不给名字是用不了include的

  • vue3必须给name,vue2可以不给
  • 在App.vue中注册的名称最好与export default 导出的名称保持一致,不然你的include可能回出现一些问题,还有就是文件名,描述组件名称的文字最好是一致的

之后直接用就行了

多个组件用逗号隔开,也可以使用正则表达式,列表

开始的情况不变,只加载现有的,我们打开后点几下

切换后缓存LEFT

再切换回来发现RIGHT没有被缓存

3.5  不缓存指定组件 exclude

与include使用类似,我们简单用一下

现在我除了LEFT剩下都缓存

开始的情况不变,只加载现有的,我们打开后点几下

切换后发现LEFT没了

再次切换发现RIGHT被缓存了

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

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

相关文章

【51单片机】点亮一个LED灯(看开发板原理图十分重要)

🎊专栏【51单片机】 🍔喜欢的诗句:更喜岷山千里雪 三军过后尽开颜。 🎆音乐分享【The Right Path】 🥰大一同学小吉,欢迎并且感谢大家指出我的问题🥰 目录 🍔基础内容 &#x1f3f3…

HMS Core 6.10.0版本发布公告

分析服务 ◆ 事件分析下新增商品订阅分析报告,帮助开发者了解应用内用户付费订阅概况,评估订阅付费价值; ◆ 营销分析、用户质量、转化分析以及过滤器中,新增广告系列/广告任务通过ID进行搜索的功能,通过更便捷高效的…

【笔试强训选择题】Day8.习题(错题)解析

作者简介:大家好,我是未央; 博客首页:未央.303 系列专栏:笔试强训选择题 每日一句:人的一生,可以有所作为的时机只有一次,那就是现在!!! 文章目录…

Skywalking

Skywalking skywalking是一个apm系统,包含监控,追踪,并拥有故障诊断能力的 分布式系统 一、Skywalking介绍 1.什么是SkyWalking Skywalking是由国内开源爱好者吴晟开源并提交到Apache孵化器的产品,它同时吸收了Zipkin /Pinpoint …

C语言初阶之常量和变量

常量和变量 什么是常量和变量常量示例 定义变量的方法变量的命名变量的分类示例 变量的使用变量的作用域和生命周期作用域生命周期 结语 什么是常量和变量 在C程序执行过程中,其值不发生改变的量称为常量,其值可变的量称为变量。它们可与数据类型结合起…

BoldReports Embedded Reporting 5.1 Crack

Embed Paginated Reports 嵌入式报告平台,商业智能报告解决方案,探索满足各种业务需求的报告功能,所有功能View Features,像素完美报告,创建像素完美的分页业务报表,随处部署,选择适合您的部署环…

Android---ANR问题分析

目录 ANR 概念 超时检测机制 如何避免 ANR 问题? ANR 分析 ANR 问题线上监控 ANR 概念 ANR(Application Not Response),是指应用程序未响应,Android 系统对于一些事情需要在一定时间范围内完成,如果超过预定时间未能得到有效…

VSCode作业1:猜数字游戏和简单计数器(包含完整代码)

目录 猜数字游戏 一、使用‘random’函数获取随机数 二、 分情况讨论输入值大小情况 三、HTML代码 四、CSS样式及运行效果 简单计数器(计时器) 一、使用‘setInterval’函数实现计数效果 二、使用’clearInterval‘函数实现暂停计数和重新计数效果 …

【机器学习】sklearn的集成学习用于图像分类从0到1,注意点和坑点

文章目录 前言1.需求分析1.1 场景1.2 解决方案 2. 代码2.1 提取特征2.2 构建分类器2.4 集成模型2.5 总的训练代码 3.fast api 封装4.总结 前言 深度学习崛起后,好像机器学习就没落了,但在固定场景下,还是很好用的。下面就是展厅项目的识别任…

解决Edge Dev更新后NewBing侧边栏消失的问题,并使用NewBing作画

文章目录 解决Edge Dev更新后NewBing侧边栏消失的问题,并使用NewBing作画问题来源操作步骤打开侧边栏步骤尝试让NewBing给出图像输出表情包或者其他图片使用NewBing作画 查看聊天记录插件 总结 解决Edge Dev更新后NewBing侧边栏消失的问题,并使用NewBing…

标签制作软件如何批量制作DotCode码

DotCode码是由不连续的点组成的二维条形码符号。设计的初衷是工业流水线上使用高速喷墨/激光打印机印刷产品有效期、批号以及序列号等。其尺寸是灵活可变的,可以根据货品表面的大小来调整印刷。下面带大家一起看一下在标签制作软件中如何批量制作: 打开…

STM32F4_十进制和BCD码的转换

目录 前言 1. BCD码 2. BCD码和十进制转换的算法 前言 最近在学习STM32单片机(不仅仅是32)的RTC实时时钟系统的过程中,需要配置时钟的时间、日期;这些都需要实现BCD码和十进制之间进行转换。这里和大家一起学习BCD码和十进制之…

C++函数必备简单知识

目录 1、函数的定义与声明 (1)定义 (2)声明 2、指针传参 3、引用 4、函数的引用传参 5、函数重载 overlord (1)参数数量不同 (2)参数类型不同 6、避免overlord歧义 7、内…

Opencv+Python图像像素处理

目录 二值图像的像素访问、修改 单个像素访问、修改 多个像素修改 彩色图像(三维数组) 像素访问、修改 BGR模式 像素访问、修改 二值图像的像素访问、修改 单个像素访问、修改 import numpy as np import cv2 as cv # 使用Numpy库中的函数zeros()可…

springboot登录验证

案例-登录认证 已经实现了部门管理、员工管理的基本功能,但是大家会发现,但没有登录,就直接访问到了Tlias智能学习辅助系统的后台。 这是不安全的,今天的主题就是登录认证。 最终要实现的效果就是用户必须登录之后,才…

Spark学习笔记【shuffle】

本文基本上是大数据处理框架Apache Spark设计与实现的Shuffle部分的学习。以及Spark基础知识Bambrow Shuffle解决啥问题 上游和下游,不同stage,不同的task之间是如何传递数据的。ShuffleManager管理ShuffleWrite和ShuffleRead 分为两个阶段&#xff1…

基于JavaWeb实现的寻码网文章资讯管理系统

一、技术结构 前端:html ajax 后端:SpringBootMybatis-plus 环境:JDK1.8 | Mysql | Maven | Redis 二、功能简介 数据库与代码截图 后端管理-登录页 后端管理-首页 后端管理-文章管理-发布文章 后端管理-文章管理-文章列表 后端管理-文…

Vue快速入门,常用指令,生命周期

Vue常用指令 案例&#xff1a; <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta http-equiv"X-UA-Compatible" content"IEedge"><meta name"viewport" content"…

MySQL一次大量内存消耗的跟踪

GreatSQL社区原创内容未经授权不得随意使用&#xff0c;转载请联系小编并注明来源。GreatSQL是MySQL的国产分支版本&#xff0c;使用上与MySQL一致。文章来源&#xff1a;GreatSQL社区原创 线上使用MySQL8.0.25的数据库&#xff0c;通过监控发现数据库在查询一个视图(80张表的u…

【网络进阶】WebSocket协议

文章目录 1. Web实时技术的应用2. WebSocket协议介绍2.1 WebSocket的工作原理2.2 优点2.3. 使用场景2.4 实现细节 3. WebSocket服务器实现3.1 客户端代码&#xff08;HTML & JavaScript&#xff09;3.2 服务器端代码&#xff08;C&#xff09;3.3 测试结果 1. Web实时技术的…