react-activation实现缓存,且部分页面刷新缓存,清除缓存
1.安装依赖
npm i -S react-activation
2.使用AliveScope 包裹根组件
import { AliveScope } from "react-activation"
<AliveScope><Router><Switch><Route exact path="/" render={() => <Redirect to="/login" push />} /> <Route path="/login" component={Login} /><Route path="/aaaa" component={App} /><Route path="/404" component={NotFound} /><Route component={NotFound} /></Switch></Router>
</AliveScope>
3.缓存组价或者路由
缓存组件
import { KeepAlive } from "react-activation"
export default () => {const [isShow, setIsShow] = useState(true)return <div><button onClick={() => setIsShow(!isShow)}>切换</button>{isShow &&<KeepAlive><Page3 /></KeepAlive>}<Page4 /></div>
}
缓存路由
import KeepAlive from 'react-activation'
//name属性,是为了刷新时候,判断路由
<KeepAlive name={this.props.path}><Route path={path} exact={exact} strict={strict} render={(props)=>( <Component {...props} /> )} />
</KeepAlive>
4.keepAlive属性
| 属性名 | 属性 | 备注 |
|---|---|---|
| when | Boolean、Array、Function | Boolean (true-卸载时缓存 false-卸载时不缓存) Array (第 1 位参数表示是否需要在卸载时 第 2 位参数表示是否卸载 的所有缓存内容,包括 中嵌的 ) Function (返回值为上述 Boolean 或 Array) |
| saveScrollPosition | Boolean | 自动保存滚动位置(默认true) |
| name | string | 缓存标识 |
5.在组件中手动刷新缓存,清除缓存
类组件
import { withAliveScope } from 'react-activation'class roleSetting extends Component {//组件内容//在路由跳转之前,将要跳转的二级页面缓存清空,解决从列表页跳转详情时,只有第一次掉接口,其他情况均不掉接口问题this.props.refreshScope('bbb')this.props.history.push({ pathname: "bbb", state: state});//清除所有缓存this.props.clear();
}
export default withAliveScope(roleSetting )
函数组件
import { useAliveController } from 'react-activation'
const TeamList = (props) => {const { refreshScope, clear } = useAliveController()//在路由跳转之前,将要跳转的二级页面缓存清空,解决从列表页跳转详情时,只有第一次掉接口,其他情况均不掉接口问题refreshScope('aaa')props.history.push({pathname: 'aaa',state: state,});//清除所有缓存,比如退出登录时候clear();
}
export default TeamList
drop(name) 卸载缓存,不包括嵌套的KeepAlive
dropScope(name) 卸载缓存,包括嵌套的所有KeepAlive
refresh(name) 刷新缓存状态,不包括嵌套的KeepAlive
refreshScope(name) 刷新缓存状态,包括嵌套的所有KeepAlive
clear() 清空所有缓存
getCachingNodes() 获取所有缓存中的节点
相关文章:
react-activation实现缓存,且部分页面刷新缓存,清除缓存
1.安装依赖 npm i -S react-activation2.使用AliveScope 包裹根组件 import { AliveScope } from "react-activation" <AliveScope><Router><Switch><Route exact path"/" render{() > <Redirect to"/login" push …...
idea 中 tomcat 乱码问题修复
之前是修改 Tomcat 目录下 conf/logging.properties 的配置,将 UTF-8 修改为 GBK,现在发现不用这样修改了。只需要修改 IDEA 中 Tomcat 的配置就可以了。 修改IDEA中Tomcat的配置:添加-Dfile.encodingUTF-8 本文结束...
Modbus协议学习第七篇之libmodbus库API介绍(modbus_write_bits等)
写在前面 在第六篇中我们介绍了基于libmodbus库的演示代码,那本篇博客就详细介绍一下第六篇的代码中使用的基于该库的API函数。另各位读者,Modbus相关知识受众较少,如果觉得我的专栏文章有帮助,请一定点个赞,在此跪谢&…...
第九节HarmonyOS 常用基础组件13-TimePicker
1、描述 时间选择组件,根据指定参数创建选择器,支持选择小时以及分钟。默认以24小时的时间区间创建滑动选择器。 2、接口 TimePicker(options?: {selected?: Date}) 3、参数 selected - Date - 设置选中项的时间。默认是系统当前的时间。 4、属性…...
力扣刷题-55.跳跃游戏
给你一个非负整数数组 nums ,你最初位于数组的 第一个下标 。数组中的每个元素代表你在该位置可以跳跃的最大长度。 判断你是否能够到达最后一个下标,如果可以,返回 true ;否则,返回 false 。 class Solution { publ…...
Ruby安装演示教程
安装 Ruby 的过程会根据您的操作系统(如 Windows、MacOS、Linux)而有所不同。以下是在这些主要平台上安装 Ruby 的基本指南。 在 Windows 上安装 Ruby 下载 Ruby Installer:访问 RubyInstaller 官方网站下载适合您系统的 Ruby Installer 版…...
前端使用vue-simple-uploader进行分片上传
目录 一、安装vue-simple-uploader 二、在vue中使用 一、安装vue-simple-uploader npm install vue-simple-uploader --save main.js初始化vue-simple-uploader import uploader from vue-simple-uploaderVue.use(uploader) common/config文件 export const ACCEPT_CONF…...
Java 源代码中常见的数据类型
在Java源代码中,常见的数据类型包括基本数据类型(Primitive Data Types)和引用数据类型(Reference Data Types)。这些数据类型在Java中用于存储不同种类的数据,如整数、小数、字符、布尔值以及对象等。 1.…...
Web3行业研究逐步加强,“链上数据”缘何成为关注焦点?
据中国电子报报道,近日,由中关村区块链产业联盟指导,中国信息通信研究院牵头,欧科云链控股有限公司参与编写的《全球Web3产业全景与发展趋势研究报告(2023年)》正式发布。研究报告通过全面追踪国内外Web3产…...
逸学区块链【solidity】真随机数
参考Get a Random Number | Chainlink Documentation 但是很贵,价格 Gas Price:当前gas价格,根据网络状况而波动。Callback gas :返回您所请求的随机值时,回调请求消耗的gas 量。验证gas :量gas 用于验证…...
【WPF.NET开发】优化性能:对象行为
本文内容 不删除对象的事件处理程序可能会使对象保持活动状态依赖属性和对象Freezable 对象用户界面虚拟化 了解 WPF 对象的内部行为有助于在功能和性能之间做出适当的取舍。 1、不删除对象的事件处理程序可能会使对象保持活动状态 对象传递给其事件的委托是对该对象的有效…...
uniapp中封装一个svg转base64的组件
uniapp中由于不支持svg--》base64,同时无法使用h5中atob,这里我们采用js-base64插件实现这样一个组件,只要传人svg的代码即可在uniapp中转为base64,同时支持自定义参数,比如宽度,高度,等 1 安装 npm inst…...
QT播放gstreamer命令(三)---使用QMediaPlayer
前文: 因为之前听说过,QMediaPlayer已经集成了gstreamer,但是并没有什么接口来例子来说明,根本看不出来有任何gstreamer的形式,于是在QT5助手里面搜了一下,发现确实有gstreamer的痕迹,但是例子写…...
Ubuntu22扩大分区
一台Ubuntu一直以为扩展成功了的,但是用起来空间不够,才发现空间还是那么小,所以赶快想办法扩展。 首先尝试使用gparted软件,结果在软件里面发现硬盘分区/dev/sda3已经全分配78G了。 但是看df -H,明明没有扩展: /dev…...
数据结构篇-05:哈希表解决字母异位词分组
本文对应力扣高频100 ——49、字母异位词分组 哈希表最大的特点就是它可以把搜索元素的时间复杂度降到O(1)。这一题就是要我们找到 “字母异位词” 并把它们放在一起。 “字母异位词”就是同一个单词中字母的不同组合形式。判断“字母异位词”有两个视角:1、所含字…...
添加了gateway之后远程调用失败
前端提示500,后端提示[400 ] during [GET] to [http://userservice/user/1] 原因是这个,因为在请求地址写了两个参数,实际上只传了一个参数 解决方案:加上(required false)并重启所有相关服务...
C#,哥伦布数(Golomb Number)的算法与源代码
1 哥伦布数(Golomb Number) 哥伦布数(Golomb Number)是一个自然数的非减量序列,使得n在序列中正好出现G(n)次。前几个15的G(n)值为:1 2 2 3 3 4 4 4 5 5 5 6…...
JVM学习
1.Java虚拟机内部有哪些线程共享,那些线程隔离 程序计数器: 通过改变这个计数器的值来选取下一条需要执行的字节码命令 Java虚拟机栈: 栈,每个方法被执行时,Java虚拟机都会同步的创建一个栈帧用于存储局部变量表&…...
Visual Studio 20XX中utf-8中文在控制台显示乱码
文章目录 在 Visual Studio 20xx中,如果源码文件是 UTF8编码,要打印中文到控制台时,控制台会显示乱码,可以进行以下设置。 包含<Windows.h>头文件。在main函数初始调用SetConsoleOutputCP(CP_UTF8)设置控制台输出字符集为UT…...
拥抱个人成长与社会进步:自我认知与开放心态的相互影响
拥抱个人成长与社会进步:自我认知与开放心态的相互影响 Embracing Personal Growth and Societal Progress: The Interplay of Self-Awareness and Open-mindedness 一、引言 I. Introduction 在当今急速发展的时代,个人成长与社会进步交织在一起&…...
EspDn32Mqtt:ESP32/ESP8266轻量级MQTT客户端封装库
1. EspDn32Mqtt 库深度解析:面向 ESP8266/ESP32 的轻量级 MQTT 客户端封装实践1.1 库定位与工程价值EspDn32Mqtt 是一个专为 ESP8266 和 ESP32 平台设计的轻量级 MQTT 客户端封装库。其核心目标并非替代PubSubClient或 ESP-IDF 原生mqtt_client,而是在保…...
【.NET 9 + CUDA 12.4 + TensorRT 10.2联合推理】:单GPU吞吐达142 tokens/sec,附可复现Benchmark数据集
第一章:.NET 9 AI 推理技术演进与联合推理范式.NET 9 将原生 AI 推理能力深度集成至运行时层,首次在 BCL(Base Class Library)中引入 Microsoft.ML.OnnxRuntime.Managed 的轻量级封装与 System.AI 命名空间,支持 ONNX、…...
“为什么我的Burst编译不生效?”:Unity官方未文档化的5类[AlwaysInline]失效场景及3步诊断法(含IL2CPP符号表验证脚本)
第一章:Burst编译失效问题的典型现象与认知误区Burst编译器是Unity DOTS生态中关键的高性能代码生成组件,但开发者常在构建过程中遭遇“静默失效”——即Burst未实际编译C# Job代码,却无报错提示,导致性能严重退化。该问题最典型的…...
HWA_03 leetcode874模拟行走机器人
题目map方法的作用解题思路 class Solution:def robotSim(self, commands: List[int], obstacles: List[List[int]]) -> int:#初始化结果result 0#从原点0,0位置开始出发x0y0#机器人前进的方向#初始方向:正北#0表示向北#1表示向东#2表示向南#3表示向西direction0…...
005、边缘AI与嵌入式智能:芯片、算法与场景的融合
005、边缘AI与嵌入式智能:芯片、算法与场景的融合 昨天深夜调一个图像分类模型,在PC上精度还有92%,部署到开发板上直接掉到60%不到。板子的推理输出全是乱码,散热片烫得能煎鸡蛋。这种问题在边缘AI项目里太典型了——实验室的算法…...
Chat Smith 7.1.0 vs 原生ChatGPT:哪个更适合你的日常AI需求?
Chat Smith 7.1.0与原生ChatGPT深度评测:如何选择你的AI助手? 在AI助手遍地开花的今天,选择一款适合自己的工具就像在糖果店挑选最合口味的糖果——眼花缭乱却难以抉择。Chat Smith 7.1.0和原生ChatGPT无疑是当前最受关注的两款产品ÿ…...
阻塞和非阻塞、同步和异步、挂起
阻塞和非阻塞阻塞和非阻塞指的是线程在调用后,线程是否干等。挂起的是任务,阻塞的是线程,任务在线程中处理,线程可以处理不同的任务。即任务挂起、线程阻塞。阻塞的特征:线程完全工作或干等在语句从调用开始到返回结果…...
[RL]强化学习指导搭建IC2E核反应堆
Minecraft 工业2 实验版核反应堆计算 强化学习模块训练路径 最近在玩Minecraft IC2 Classic,但是对于摆核反应堆总是感觉不是很得心应手,不管怎么摆效率都很低,为了解决这个问题,所以我写了一个强化学习的模块,让神经网…...
同事离职,他在大群里发了一句“感谢一路相伴,江湖再见”,刚发出去,HR就让他撤回,理由是工作群不要发与工作无关的内容。
今天摸鱼的时候,听到一个极其荒诞又极其现实的职场鬼故事。隔壁部门的老李提了离职,今天是last day。这哥们儿可能平时武侠小说看多了,临走前在几百人的公司大群里发了一句:“感谢一路相伴,江湖再见”。结果呢…...
打卡信奥刷题(3080)用C++实现信奥题 P7057 [NWRRC 2015] Journey to the “The World’s Start”
P7057 [NWRRC 2015] Journey to the “The World’s Start” 题目描述 Jerry Prince 是一名四年级学生,他去 New-Lodnon 参观最受欢迎的游乐园 “The World’s Start”。 他到达的机场就在地铁线的第一站旁边。这条地铁线有 nnn 个站点,“The World’s S…...
