qainkun 子应用更新,但是访问主应用时显示的还是旧的内容

前言:

使用qiankun时,子应用只改了一个页面里很细微的东西。比如:只改了一个文字等等。访问主应用时却还是旧的页面。清除浏览器缓存才刷新过来。即使我子应用打包时文件都有了 动态的hash生成也会出现这种问题。
qiankun官方也给了解决方案:

qiankun 微应用文件更新之后,访问的还是旧版文件

我的解决方案

本质上是解决浏览器缓存问题:
h5的可以看看:React、vue、h5端项目避免缓存
如果qiankun给的方案依然不行,就可以试试:

子应用项目里新建一个 version.json 写上版本号(需要注意的是需要打完包部署后可以访问到的地方):

{"sub-pdProduct": "1.0.10"
}

然后主应用 注册子应用时 entry 后面拼上版本号:
先 请求对应地址的json文件

 fetch(xxx/version.json, {method: 'GET', mode: 'cors', cache: 'no-cache'}).then((response) => response.json()).then((res) => {if (localStorage.getItem("subPbVersion") !== res["sub-multi-tabs-admin"]) {localStorage.setItem("subPbVersion", res["sub-multi-tabs-admin"]);}}).catch(function (err) {localStorage.setItem("subPbVersion", timeStr.toString());});

然后:

 {name: 'sub-pdProduct',entry: xxx + "?version=" + localStorage.getItem("subPdVersion"),container: '#qiankun-imp-wrap',activeRule: '/#/sub-pdProduct',},

这样做会遇到一些问题,比如 跨域。如果实在不行,也可以把所有子应用的版本号维护放到一个接口里。子应用更新了也要同步更新版本号。

我只是提供这么一个思路,具体实施需要根据自己的需求来定(目前我就是用 各个子项目维护自己的版本号,缺点是 子应用有几个就需要请求几个json,后面考虑合并到一起)。

如果不想这么麻烦,还有个方法就是 直接加 时间戳:
显而易见这个的缺点就是 每次访问时都会重新请求资源(其实我觉得这个也不会造成太大的资源浪费)

const timeStr = new Date().getHours();
{name: 'sub-xxx',entry: xxx "?time=" + timeStr,container: '#qiankun-imp-wrap',activeRule: '/#/sub-xxx',},

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

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

相关文章

Linux之shell详解(Linux Shell Detailed Explanation)

💝💝💝欢迎来到我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。 推荐:Linux运维老纪的首页…

使用 Helsinki-NLP 中英文翻译本地部署 - python 实现

通过 Helsinki-NLP 本地部署中英文翻译功能。该开源模型性价比相对高,资源占用少,对于翻译要求不高的应用场景可以使用,比如单词,简单句式的中英文翻译。 该示例使用的模型下载地址:【免费】Helsinki-NLP中英文翻译本…

浙江大学机试试题合集(2)

🍰🍰🍰hello宝子们,今天我们继续来练习浙江大学的机试题目。加油!fighting!( •̀ ω •́ )✧ 21🍩1696 Ambulance Dispatch 给定一张城市地图,上面有所有的救护车调度中心(救护车派遣中心) 并标记所有拾取点。你应该写一个程序来处理紧急呼叫。假设来电者正在某个…

得物App荣获“科技创新服务示范案例”,推动品质消费新升级

备受瞩目的2024年中国国际服务贸易交易会在北京盛大开幕,这一由商务部和北京市政府联合举办、并获得世贸组织、联合国等国际组织支持的国家级、国际性、综合型服务贸易盛会,再次吸引了全球的目光。作为上海科技企业的优秀代表,得物App亮相此次…

为什么Linux系统下的程序无法在Windows下运行

两个系统的格式不同,格式就是协议,是在固定位置有意义的数据。Linux下可执行文件格式是elf,可使用readelf查看elf文件头 而Windows下的可执行程序是PE格式,是一种可执行文件。 还有一点是Linux下和Win下系统API不同,这…

Stable Diffusion最新版nowebui的api使用详解

最近在使用stable diffusion最新版的Stable Diffusion WebUI Forge进行api调用,下面来一步一步的进行展开吧!!! 1、下载lllyasviel/stable-diffusion-webui-forge GitHub - lllyasviel/stable-diffusion-webui-forgeContribute to lllyasviel/stable-diffusion-webui-for…

Vxe UI vue vxe-table 实现表格单元格选中功能

Vxe UI vue vxe-table 实现表格单元格选中功能 在表格中实现鼠标点击任意单元格,选取的功能,通过 mouse-config 配置就可以开启单选功能,多选单元格选取功能需安装插件支持。 代码 参数说明 mouse-config 鼠标配置项: selected&…

基于连续小波变换(CWT)批量生成一维信号的时频图 最终生成30张时频图。生成的图像可用于后续的深度学习分类或其他处理。附详细的说明文档。

Matlab基于连续小波变换(CWT),将一维信号批量生成时频图的源代码。此示例中,原始信号data是30*1280的格式,一共30条信号,信号长度为1280。最终生成30张时频图。生成的图像可用于后续的深度学习分类或其他处…

多级代理与提权维权

目录 代理构建FRP介绍下载配置⽂件: sock5代理Venom介绍下载配置 icmpsh介绍下载配置 pingtunnel介绍下载配置 EarthWorm介绍下载使用 权限提升win权限提升常⻅利⽤⼯具 Linux权限提升SUID提权 权限维持win权限维持系统服务后⻔⾃启动⽬录注册表后⻔其他类似隐藏⽤户…

前端vue-配置请求拦截器

1.配置拦截器,记得20行的导出 2.响应拦截器,记得28行的导出 3.拦截器不止可以拦截,还可以添加内容

解锁SoC “调试”挑战,开启高效原型验证之路

引言: 由于芯片设计复杂度的提升、集成规模的扩大,以及产品上市时间要求的缩短,使得设计验证变得更加困难。特别是在多FPGA环境中,设计调试和验证的复杂性进一步增加,传统的调试手段难以满足对高性能、高效率的需求。因…

Spring Boot 进阶-详解SpringBoot的复杂数据校验规则

在之前的文章中,我们介绍了SpringBoot整合JSR-303规则来完成数据校验操作。接下来我们来聊一聊关于数据校验的具体用法。 之前的文章中举过一个简单的例子通过学生信息提交的例子来介绍了关于数据校验如何去做。那么接下来这篇文章,我们就来看看对于一些复杂的数据校验如何完…

实例讲解电动汽车VIN写入规则及Simulink建模方法(一)——VIN校验方法及Simulink建模

目录 一、车辆VIN简介 二、电动汽车VIN写入规则及校验和规则 1、写入规则 2、校验和规则 三、VIN校验方法及Simulink建模 1、VIN校验方法 2、上位机发送VIN写入报文解包Simulink建模 3、校验和对比验证Simulink建模 4、VIN校验方法Simulink建模整体模型 四、总结 一、…

10.8 springBoot学习

学习内容的来源途径:spring Boot 1.不同的架构 之前写的qq是C/S,百度贴吧,淘宝之类的网站项目则为B/S架构. 2.两种架构对比

0基础跟德姆(dom)一起学AI 机器学习04-逻辑回归

逻辑回归简介 应用场景 逻辑回归是解决二分类问题的利器 数学知识 sigmoid函数 概率 极大似然估计 核心思想: 设模型中含有待估参数w,可以取很多值。已经知道了样本观测值,从w的一切可能值中(选出一个使该观察值出现的概率为…

No.13 笔记 | 网络安全防护指南:从法律法规到技术防御

一、法律法规 《中华人民共和国网络安全法》要点 遵守法律:所有个人和组织在使用网络时,必须遵守宪法和法律,不得利用网络从事危害国家安全等活动。 个人信息保护:禁止非法获取、出售或提供个人信息。若违反但未构成犯罪&#x…

Rust编程的匹配控制语句match

【图书介绍】《Rust编程与项目实战》-CSDN博客 《Rust编程与项目实战》(朱文伟,李建英)【摘要 书评 试读】- 京东图书 (jd.com) Rust编程与项目实战_夏天又到了的博客-CSDN博客 学过C语言的同学或许在等switch,明确告诉你们,Rust没有switc…

【微服务】—SpringBoot入门

⭐⭐⭐⭐⭐⭐ Github主页👉https://github.com/A-BigTree 笔记仓库👉https://github.com/A-BigTree/tree-learning-notes 个人主页👉https://www.abigtree.top ⭐⭐⭐⭐⭐⭐ 文章目录 1 SpringBoot快速入门1.1 SpringBoot简介1.1.1 简介1.1.2…

Python | Leetcode Python题解之第464题我能赢吗

题目: 题解: class Solution:def canIWin(self, maxChoosableInteger: int, desiredTotal: int) -> bool:cachedef dfs(usedNumbers: int, currentTotal: int) -> bool:for i in range(maxChoosableInteger):if (usedNumbers >> i) & 1…

音频剪辑在线工具 —— 让声音更精彩

你是否曾梦想过拥有自己的声音创作空间,却苦于复杂的音频编辑软件?接下来,让我们一同揭开这些音频剪辑在线工具的神秘面纱,看看它们如何帮助你实现从录音到发布的无缝衔接。 1.福昕音频剪辑 链接直达>>https://www.foxits…