微前端四:qiankun在开发中遇到的问题
在qiankun开发中会遇到很多问题,上一篇微前端三:qiankun 协作开发和上线部署其实也是在解决一些经常遇到的问题,下面的两点也算是比较经典的了
1、子应用图片路径问题
2、基座是Vue2.0 + element ui 配合 子应用 Vue3.0 + element plus 导致的样式冲突问题
具体怎么解决我们一起来看下。
一、子应用图片路径问题
在使用qiankun做微前端的过程中,子应用在主应用(基座)的过程中出现静态资源404问题,
原因是子应用放入到基座中后,静态资源会默认走主应用地址去访问,但是主应用又没有这些静态资源文件,其结果显而易见,肯定是404了。
我们需要将 webpack publicPath 配置设置成一个绝对地址的 url,改为绝对路径即可:
const { name } = require("./package");
module.exports = {// Webpack dev serverpublicPath: `/${name}`,configureWebpack: {output: {library: `${name}-[name]`,libraryTarget: "umd", // 把微应用打包成 umd 库格式jsonpFunction: `webpackJsonp_${name}`}},chainWebpack: (config) => {config.module.rule("images").use("url-loader").loader("url-loader").options({limit: 4096, // 小于4kb将会被打包成 base64fallback: {loader: "file-loader",options: {name: "img/[name].[hash:8].[ext]",publicPath}}});},productionSourceMap: false
};
这里的name 就是注册微应用的 entry值,之前文档也有提过。
二、基座是Vue2.0 + element ui 配合 子应用 Vue3.0 + element plus 导致的样式冲突问题
先看一张解决完样式冲突后的样子,上面header是基座,下面是子应用

再看下没解决之前的样子,下面可以看出基座的input框没了,子应用的时间组件和下拉框组件样式也错乱了


产生问题的原因:
由于element-ui 和 element-plus 前缀相同、命名规则相同,但内部部分样式实现方式不同,从而导致样式被污染,页面样式混乱。
解决方法:自定义命名空间
element-plus默认命名空间为el,el会作为其编译后的class名及css前缀。支持自定义命名

在App.vue中代码为
<div id="app"><el-config-provider namespace="elplus"><router-view /></el-config-provider>
</div>
设置 SCSS 和 CSS 变量
创建 styles/element/index.scss:
@forward 'element-plus/theme-chalk/src/mixins/config.scss' with ($namespace: 'elplus'
);
因为我使用的是 qiankun + vue3.0 + webpack,所以需要在webpack 的 preprocessorOptions 中设置。
import { defineConfig } from 'vite'
// https://vitejs.dev/config/
export default defineConfig({// ...css: {preprocessorOptions: {scss: {additionalData: `@use "~/styles/element/index.scss" as *;`,}}}
})
上面是官网给出的代码一直到SCSS都没问题,但是webpack的配置不对,可能是我用的webpack版本比较高,我用的下面的配置
css: {loaderOptions: {// 给 sass-loader 传递选项scss: {// @/ 是 src/ 的别名// 这些是公共的scss变量和混合方法等additionalData: `@use "./src/assets/styles/index.scss" as *;`}}}
到这里后,还有一点比较坑,我相信很多人也遇到了,就是配置完 依然不起作用,整个样式还乱了

一步一深坑,答案就在你的main.js里

一般引入 element-plus 时,我们用的是
import ElementPlus from 'element-plus';
import 'element-plus/dist/index.css';
index.css是编译压缩过的,还用这个样式就等于没了,因为我们换了前缀命名,index.css还是默认 el 的
需要改为引入
import 'element-plus/theme-chalk/src/index.scss';
至此样式冲突算是彻底解决了,可以放心的用 vue3.0了
相关文章:
微前端四:qiankun在开发中遇到的问题
在qiankun开发中会遇到很多问题,上一篇微前端三:qiankun 协作开发和上线部署其实也是在解决一些经常遇到的问题,下面的两点也算是比较经典的了 1、子应用图片路径问题 2、基座是Vue2.0 element ui 配合 子应用 Vue3.0 element plus 导致的样…...
Android DisplayPolicy增加一些动作,打开后台接口
Android DisplayPolicy增加一些动作,打开后台接口 前言一、了解android全局滑动事件的拦截二、修改1.DisplayPolicy.java修改 前言 一些后台接口 界面之类的不方便打开,但是测试需要用到,这里就添加一个10秒内上拉6下,打开一个后…...
基于Linux安装Hive
Hive安装包下载地址 Index of /dist/hive 上传解压 [rootmaster opt]# cd /usr/local/ [rootmaster local]# tar -zxvf /opt/apache-hive-3.1.2-bin.tar.gz重命名及更改权限 mv apache-hive-3.1.2-bin hivechown -R hadoop:hadoop hive配置环境变量 #编辑配置 vi /etc/pro…...
FPGA 图像缩放 1G/2.5G Ethernet PCS/PMA or SGMII实现 UDP 网络视频传输,提供工程和QT上位机源码加技术支持
目录 1、前言版本更新说明免责声明 2、相关方案推荐UDP视频传输--无缩放FPGA图像缩放方案我这里已有的以太网方案 3、设计思路框架视频源选择ADV7611 解码芯片配置及采集动态彩条跨时钟FIFO图像缩放模块详解设计框图代码框图2种插值算法的整合与选择 UDP协议栈UDP视频数据组包U…...
重复控制逆变器的仿真分析研究
摘 要 本次设计主要以重复控制逆变器控制系统设计应用作为研究背景,运用MATLAB/Simulink仿真工具搭建相应的仿真模型。重复控制逆变器控制系统拥有很好的动态特性,运行稳定性高、调速的范围较大,性能可靠等,在实际生产制造中被广…...
WuThreat身份安全云-TVD每日漏洞情报-2023-10-18
漏洞名称:致远 OA XML 外部实体注入漏洞 漏洞级别:高危 漏洞编号:NULL 相关涉及:V5/G6 V6.0及以上全系列版本 漏洞状态:POC 参考链接:https://tvd.wuthreat.com/#/listDetail?TVD_IDTVD-2023-26027 漏洞名称:XNSOFT NCONVERT 图像文件缓冲区溢出 漏洞级别:中危 漏洞编号:CVE-…...
开启机器人学新时代,《机器人学建模、规划与控制》完美诠释未来
机器人学是未来发展的热点领域之一,而在这个领域中,建模、规划与控制则是必不可少的基础技术。今天作者要向大家推荐一本机器人学领域的经典教材——《机器人学建模、规划与控制》。 这本书由西安交通大学出版社出版,作者是机器人学专业的鼎…...
C#根据ip获取地理位置信息的方法,史上最全
商业收费 百度地图高德地图腾讯地图纯真IP 开源免费 纯真ip免费版 以前可以直接下载,现在获取ip数据库的方式改变了,自行官网查看把,个人或者学术研究,商用追责,商业用途慎用 using System.Collections.Generic; us…...
Git问题汇总
1.取消全局代理 一般报错Failed to connect to github.com port 443 after 21089 ms: Couldn’t connect to server 取消全局代理: git config --global --unset http.proxygit config --global --unset https.proxy#或者 git config --global http.proxy http://…...
【linux 0.11 学习记录】一、环境配置,用Bochs输出hello world
想学习linux,又不知道从哪里下手,体系太大,哪块内容都很多,无奈下选择了linux0.11作为入口,本系列将是学习笔记,希望能坚持下去吧 环境配置 这里使用win10bochs2.7 安装bochs 官网:https://b…...
【LeetCode75】第七十三题 用最少数量的箭引爆气球
目录 题目: 示例: 分析: 代码: 题目: 示例: 分析: 本题和上一题基本一样,上一题是要我们尽量让区间不重叠,而本题是要我们尽量让区间重叠。 所以我们的做法和上一题…...
航天科技×辰安科技 打造智慧化工园区安全保障平台
近年来,国内化工园区安全事故频发,多起化工园区重特大事故造成了严重人员财产损失的同时,也重创了行业的整体发展。在智能制造和工业互联网的背景下,建设智慧化工园区,使用智能化手段实现安全生产是解决当前化工园区安…...
6-2 分治法求解金块问题
description 老板有一袋金块(共n块,2≤n≤100),两名最优秀的雇员每人可以得到其中的一块,排名第一的得到最重的金块,排名第二的则得到袋子中最轻的金块。 输入一个正整数N(2≤N≤100ÿ…...
A062-防火墙安全配置-配置Iptables防火墙策略
实验步骤: 【教学资源类别】 序号 类别 打勾√ 1 学习资源 √ 2 单兵模式赛题资源 3 分组对抗赛题资源 【教学资源名称】 防火墙安全配置-配置安全设置iptables防火墙策略 【教学资源分类】 一级大类 二级大类 打勾√ 1.安全标准 法律法规 行业标准 安全…...
Java包装类
在Java中不能自己定义基本数据类型对象,为了将基本数据类型视为对象进行处理,并能连接相关方法,Java为每个基本数据类型都提供了【包装类】如int型数值的包装类【Integer】,boolean型数值的包装类【Boolean】,这样就可以把这些基本数据类型转…...
常用字符字符串处理函数
isdigit、isalnum、isalpha、islower、issupper都是C/C 语言中判断字符的一些函数,灵活利用在刷题中可以节省我们的一部分时间。下面c统一为char类型字符 1.isdigit 若参数c为十进制数字0~9,则返回非0值,否则返回0。 其中isxdigital判断是…...
【汇编语言特别篇】DOSBox及常用汇编工具的详细安装教程
文章目录 📋前言一. ⛳️dosbox的介绍、下载和安装1.1 🔔dosbos简介1.2 🔔dosbox的下载1.2.1 👻方式一:官网下载(推荐)1.2.2 👻方式二:网盘安装包 1.3 🔔dosbox的安装1.4 ǵ…...
【牛客网刷题(数据结构)】:环形链表的约瑟夫问题
描述 编号为 1 到 n 的 n 个人围成一圈。从编号为 1 的人开始报数,报到 m 的人离开。 下一个人继续从 1 开始报数。 n-1 轮结束以后,只剩下一个人,问最后留下的这个人编号是多少? O(n) 示例1 好环形链表的约瑟夫问题是一个经典的问…...
虾皮印尼买家号如何注册
虾皮(Shopee)是一个流行的电子商务平台,想要注册虾皮印尼买家号,可以按照以下步骤进行操作: 1、访问虾皮印尼站点:打开浏览器,输入虾皮印尼官网 2、点击"注册":在网站的…...
SpringBoot WebService服务端客户端使用教程
服务端: 依赖 <!-- webservice相关依赖--><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web-services</artifactId></dependency><dependency><groupId&…...
CentOS 7下VNC连接Sentaurus TCAD服务器,从安装到排错的保姆级避坑指南
CentOS 7下高效连接Sentaurus TCAD的工程实践指南 在半导体设计与仿真领域,Sentaurus TCAD作为行业标准工具链,其服务器环境的稳定访问是研发效率的关键保障。对于刚接触Linux服务器环境的工程师或研究人员而言,如何通过VNC实现图形化界面的远…...
别再只会拖控件了!FastReport 实战:手把手教你用代码搞定复杂报表(含分组、过滤、合计)
代码驱动报表革命:FastReport高级开发实战指南 在电商后台系统中,销售报表往往需要处理动态分组、条件过滤和跨页合计等复杂需求。传统拖拽式设计工具虽然入门简单,但面对这类业务场景时常常捉襟见肘。本文将带你突破界面限制,通过…...
告别模型水土不服:用TENT的熵最小化,5分钟搞定测试时域自适应(附PyTorch代码)
实战TENT:5行代码解决模型部署中的“水土不服”问题 想象一下这样的场景:你花费数月训练的自动驾驶视觉模型在实验室测试中准确率高达98%,但当它遇到真实世界的暴雨天气时,识别率瞬间暴跌至60%。这种"实验室王者,…...
避坑指南:ArcGIS提取的DEM高程点,为什么在Global Mapper里显示为平面?
跨平台高程数据互操作:解决ArcGIS与Global Mapper的字段兼容性问题 当你第一次将ArcGIS中精心提取的DEM高程点导入Global Mapper,期待看到起伏的地形时,却发现所有点都平铺在一个平面上——这种挫败感我深有体会。这不是软件故障,…...
物联网平台融资潮解析:从资本流向看行业技术演进与未来格局
1. 项目概述:为什么我们要关注物联网平台的融资潮?最近几年,如果你在科技圈里待着,很难不注意到一个现象:那些做物联网开发平台的公司,动不动就宣布完成了上亿甚至数亿美元的融资。这已经不是个别现象&…...
AI数据标注实战:如何高效、准确地标注训练数据
在AI模型的开发与迭代过程中,数据标注是连接原始数据与智能算法的关键桥梁,其质量与效率直接决定了模型的性能上限。对于软件测试从业者而言,掌握高效、准确的数据标注方法,不仅能为AI模型提供可靠的训练“食粮”,更能…...
国内用户怎么注册.ai域名?2026最新AI域名注册规则+平台推荐
随着人工智能(AI)行业的持续爆发,越来越多企业在搭建官网时,开始优先选择 .ai域名。 你会发现一个明显变化: 👉 很多AI工具、AI平台,直接使用“.ai”作为网站后缀 这背后的原因,其…...
翻转电饼铛生产厂家:竞争突围与渠道升级策略解析
翻转电饼铛生产厂家竞争突围与渠道升级策略FAQ:从技术到服务的破局之道"低价内卷走不远,翻转电饼铛生产厂家需靠技术差异化与服务价值突围"——这是食品机械行业从业者的共同感悟。当前市场竞争加剧,厂家面临人工成本高、品控不稳定…...
Windows触控板驱动终极实战:让苹果设备在Windows平台重获新生
Windows触控板驱动终极实战:让苹果设备在Windows平台重获新生 【免费下载链接】mac-precision-touchpad Windows Precision Touchpad Driver Implementation for Apple MacBook / Magic Trackpad 项目地址: https://gitcode.com/gh_mirrors/ma/mac-precision-touc…...
如何构建高效科研知识库:Obsidian文献管理系统的3种创新策略
如何构建高效科研知识库:Obsidian文献管理系统的3种创新策略 【免费下载链接】obsidian_vault_template_for_researcher This is an vault template for researchers using obsidian. 项目地址: https://gitcode.com/gh_mirrors/ob/obsidian_vault_template_for_r…...
