qiankun主应用(vue2+element-ui)子应用(vue3+element-plus)不同版本element框架css样式相互影响的问题
背景:qiankun微前端架构实现多应用集成
主应用框架:vue2&element-ui
子应用框架:vue3&element-plus
>> 问题现象和分析
登录页面是主应用的,在登录之后才能打开子应用的菜单页面,即加载子应用。
首次进入登录页面样式是没有问题的,但是打开过子应用页面之后,再回到主应用的登录页面时,登录页面的下拉框和输入框的边框不见了。
1、F12观察 <el-input> 的结构和样式, element-ui 给 .el-input_inner设置了 border,但是 element-plus 去掉了 border

2、再观察一下 element-plus 的 <el-input>,比 element-ui 多了一层 el-input__wrapper,element-plus 是给 el-input__wrapper设置了 box-shadow来作为边框的

>> 解决方法
element-plus 提供了:自定义命名空间,参考官网将使用 element-plus 的应用使用自定义命名空间,与 element-ui 固定的 el-前缀区分开。
代码参考
App.vue
<template><el-config-provider namespace="ep"><!-- ... --></el-config-provider>
</template>
/src/styles/element_plus_index.scss
@forward 'element-plus/theme-chalk/src/mixins/config.scss' with ($namespace: 'ep'
);
vite.config.js(使用vite搭建项目)
import { defineConfig } from 'vite'
export default defineConfig({// ...css: {preprocessorOptions: {scss: {additionalData: `@use "@/styles/element_plus_index.scss" as *;`,/* additionalData: `@use "@/styles/element_plus_index.scss" as *;@use "@/styles/xxx.scss" as *;@use "@/styles/yyy.scss" as *;` */ // 如果有多个文件需要引入},},},// ...
})
vue.config.js(使用 vue-cli搭建项目)
module.exports = {css: {loaderOptions: {sass: {additionalData: `@use "@/styles/element_plus_index.scss" as *;`},},}
}
最后,把开发过程中自定义的一些 element组件样式中的 el-前缀都替换成ep-
>> 效果
如下图为子应用页面,可见子应用 element-plus 的 标签类名和样式文件都改为 ep-前缀,不会再影响主应用

>> 框架版本记录
(有些应用使用了较早版本的 element-plus,而较早版本的 element-plus功能当时还不是很稳定,自定义命名空间可能无法使用,记录一下我当前正在使用的框架版本)
- 应用框架版本1
# vue-cli 5.0.8"vue": "^3.0.0""element-plus": "2.3.8"
- 应用框架版本2
# vite 5.3.1"vue": "^3.4.29""element-plus": "^2.8.0"
相关文章:
qiankun主应用(vue2+element-ui)子应用(vue3+element-plus)不同版本element框架css样式相互影响的问题
背景:qiankun微前端架构实现多应用集成 主应用框架:vue2 & element-ui 子应用框架:vue3 & element-plus >> 问题现象和分析 登录页面是主应用的,在登录之后才能打开子应用的菜单页面,即加载子应用。 首…...
resnet50,clip,Faiss+Flask简易图文搜索服务
一、实现 文件夹目录结构: templates -----upload.html faiss_app.py 前端代码: <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta name"viewport" content"widt…...
使用OkHttp进行HTTPS请求的Kotlin实现
OkHttp简介 OkHttp是一个高效的HTTP客户端,它支持同步和异步请求,自动处理重试和失败,支持HTTPS,并且可以轻松地与Kotlin协程集成。OkHttp的设计目标是提供最简洁的API,同时保持高性能和低延迟。 为什么选择OkHttp …...
使用Mac下载MySQL修改密码
Mac下载MySQL MySQL官网链接MySQL 当进入到官网后下滑到community社区,进行下载 然后选择community sever下载 这里就是要下载的界面,如果需要下载之前版本的话可以点击archives, 可能会因为这是外网原因,有时候下…...
运维面试题.云计算面试题集锦第一套
运维+网络安全学科基础升就业 测试题(总分100分) 一,单词翻译(10分,直接写在答题卡上) 二,单选题(每题2分,共30题): 1.如下哪个属于管道符?( ) A、|| B、<< C、// D、| 2.有一备份程序mybackup,需要在周一至周五下午1点和晚上8点各运行一次,下面哪条cront…...
CSS-flex布局
flex常用语法 display: flex 父级元素相关 flex-direction 主轴方向【水平方向(默认)、垂直方向】justify-content 主轴上的对齐方式【flex-end结束对齐、space-between两端对齐、center】align-items 交叉轴的对齐方式【center、flex-end】flex-wrap…...
Linux:进程的优先级 进程切换
文章目录 前言一、进程优先级1.1 基本概念1.2 查看系统进程1.3 PRI和NI1.4 调整优先级1.4.1 top命令1.4.2 nice命令1.4.3 renice命令 二、进程切换2.1 补充概念2.2 进程的运行和切换步骤(重要) 二、Linux2.6内核进程O(1)调度队列(重要&#x…...
web应用安全和信息泄露
使用springboot开发的应用可能存在各种使用不当导致的信息泄露和漏洞,在此记录 1:spring actuator导致的信息泄露 使用spring actuator你可以选择通过使用HTTP端点或使用JMX来管理和监控你的应用程序。 审计、健康和指标收集也可以自动应用于你的应用程…...
创建vue3项目步骤
脚手架创建项目: pnpm create vue Cd 项目名称安装依赖:Pnpm iPnpm Lint:修复所有文件风格 ,不然eslint语法警告报错要双引号Pnpm dev启动项目 拦截错误代码提交到git仓库:提交前做代码检查 pnpm dlx husky-in…...
尽量通俗易懂地概述.Net U nity跨语言/跨平台相关知识
本文参考来自唐老狮,Unity3D高级编程:主程手记,ai等途径 仅作学习笔记交流分享 目录 1. .Net是什么? 2. .Net框架的核心要点? 跨语言和跨平台 .Net x Unity跨平台发展史 Net Framework 2002 Unity跨平台之 Mono 2004 Unity跨平台之 IL2CPP 2015 二者区别 .NET Core …...
【AlphaFold3】开源本地的安装及使用
文章目录 安装安装DockerInstalling Docker on Host启用Rootless Docker 安装 GPU 支持安装 NVIDIA 驱动程序安装 NVIDIA 对 Docker 的支持 获取 AlphaFold 3 源代码获取基因数据库获取模型参数构建将运行 AlphaFold 3 的 Docker 容器 参考 AlphaFold3: https://github.com/goo…...
vue2/vue3中使用的富文本编辑器vue-quill
前言: 整理下常用的富文本编辑器工具。 vue3: 实现效果: 实现步骤: 1、安装插件, 编辑器核心插件 vueup/vue-quill yarn add pnpm i npm i cnpm i vueup/vue-quill vueup/vue-quill 2、安装选择性插件 &a…...
论文阅读《BEVFormer v2》
BEVFormer v2: Adapting Modern Image Backbones to Bird’s-Eye-View Recognition via Perspective Supervision 目录 摘要1 介绍2 相关工作2.1 BEV三维目标检测器 摘要 我们提出了一种具有透视监督的新型鸟瞰图(BEV)检测器,其收敛速度更快…...
自动化运维(k8s):一键获取指定命名空间镜像包脚本
前言:脚本写成并非一蹴而就,需要不断的调式和修改,这里也是改到了7版本才在 生产环境 中验证成功。 该命令 和 脚本适用于以下场景:在某些项目中,由于特定的安全或政策要求,不允许连接到你的镜像仓库。然而…...
HarmonyOS ArkUI(基于ArkTS) 开发布局 (上)
一 ArkUI(基于ArkTS)概述 基于ArkTS的声明式开发范式的方舟开发框架是一套开发极简、高性能、支持跨设备的UI开发框架,提供了构建应用UI所必需的能力 点击详情 特点 开发效率高,开发体验好 代码简洁:通过接近自然语义的方式描述UI&#x…...
第九部分 :1.STM32之通信接口《精讲》(USART,I2C,SPI,CAN,USB)
本芯片使用的是STM32F103C8T6型号 STM32F103C8T6是STM32F1系列中的一种较常用的低成本ARM Cortex-M3内核MCU,具有丰富的通信接口,包括USART、SPI、I2C等。下面是该芯片上通信接口的管脚分布、每个接口的工作模式、常用应用场景和注意事项。 1. USART (通…...
5. langgraph中的react agent使用 (从零构建一个react agent)
1. 定义 Agent 状态 首先,我们需要定义 Agent 的状态,这包括 Agent 所持有的消息。 from typing import (Annotated,Sequence,TypedDict, ) from langchain_core.messages import BaseMessage from langgraph.graph.message import add_messagesclass …...
uniapp vue3的下拉刷新和上拉加载
开启页面的下拉刷新,注意这个不是可滚动视图的下拉刷新. 一般页面建议使用页面外的,不要使用scroll-view里面的下拉刷新. pages: "pages": [ {"path": "pages/index/index","style": {"navigationBarTitleText": "首…...
STM32设计井下瓦斯检测联网WIFI加Zigbee多路节点协调器传输
目录 目录 前言 一、本设计主要实现哪些很“开门”功能? 二、电路设计原理图 1.电路图采用Altium Designer进行设计: 2.实物展示图片 三、程序源代码设计 四、获取资料内容 前言 本系统基于STM32微控制器和Zigbee无线通信技术,设计了…...
Vue 3 中的原生事件监听与组件事件处理详解
Vue 3 中的原生事件监听与组件事件处理完全指南 在 Vue 3 中,事件监听和事件处理是组件交互中的关键部分。Vue 提供了一套简单而强大的事件处理机制,可以方便地监听 DOM 原生事件和组件自定义事件。本篇文章将详细介绍 Vue 3 中事件的使用,包…...
ARM A64指令集架构解析与优化实践
1. A64指令集架构概述A64指令集作为ARMv8-A架构的64位执行状态核心,采用固定32位长度编码设计,这种设计在指令获取和流水线处理上具有显著优势。与传统的变长指令集相比,固定长度编码使得指令预取和译码阶段更加高效,尤其适合现代…...
东芝成熟制程代工服务解析:More-than-Moore战略与欧洲市场机遇
1. 东芝的“伦敦呼唤”:一次面向欧洲的成熟制程代工服务解析最近在梳理半导体产业动态时,东芝在2012年的一项战略动作引起了我的注意。这并非关于其最前沿的3D NAND闪存,而是一项看似“复古”的业务拓展:面向欧洲客户开放其成熟制…...
规划求解(Solver)实战:利用Excel的Solver工具进行投资组合优化
投资界有句老话:"别把鸡蛋放在一个篮子里。"但很少有人告诉你后半句:“每个篮子放多少鸡蛋,才是大学问。“Solver就是投资组合的"营养师”,帮你配出最佳"营养比例”。就像投资界的红绿灯,约束条件告诉你什么可以做,什么不可以碰。 一、什么是规划求解…...
PDF顺手编辑器工具
版式文件编辑器是一款支持PDF和OFD 文件处理工具,可在任何网络下使用。软件完全免费,无广告零弹窗,而且资源占用极小。软件广泛应用在党、政、军及企事业单位中,适合电子公文、证照、票据等领域,应用范围非常广。为啥用…...
AI图像编辑中的性别擦除现象与视觉公平性测试
1. 项目概述:当AI“擦除”男性面孔时,我们到底在测试什么?“AI Erases Men Too: A Visual Test of Bias Across Four Leading Tools”——这个标题乍看像一则科技媒体的警示快讯,但背后是一次扎实、可复现、有明确方法论支撑的视觉…...
Lua RTOS在ESP32上的应用:从架构解析到物联网项目实战
1. 项目概述:当Lua遇上RTOS,为ESP32注入灵魂 如果你玩过ESP32,大概率用过Arduino框架或者乐鑫官方的ESP-IDF。前者简单易上手,但深度定制和实时性有限;后者功能强大专业,但C语言开发门槛不低,调…...
第六篇:《JMeter逻辑控制器:循环、条件和交替执行》
在实际业务测试中,并非只是简单的顺序执行。有时需要重复执行某些操作(循环),有时需要根据条件决定执行哪个分支(条件),有时需要模拟多个用户的交替行为(交替)。JMeter 提…...
技能图谱探索器:从数据建模到交互可视化的全栈实现
1. 项目概述:一个技能图谱的探索工具最近在GitHub上看到一个挺有意思的项目,叫nitzzzu/openclaw-skills-explorer。光看名字,openclaw和skills-explorer这两个词就挺有画面感的。我第一反应是,这应该是一个用来探索、梳理或可视化…...
国际空间站工程知识共享:从太空协作到地面工程实践的启示
1. 国际空间站:一个工程师眼中的知识共享金矿作为一名在航天工程领域摸爬滚打了十几年的工程师,我常常被问到一个问题:耗资巨大的国际空间站(ISS),除了那些遥不可及的太空探索梦想,到底给我们这…...
Cursor AI 编程助手配置优化:一键安装与自定义指南
1. 项目概述:为什么需要一套现成的 Cursor 配置?如果你和我一样,是 Cursor 的重度用户,那么你肯定经历过这样的阶段:刚上手时,觉得这个 AI 驱动的 IDE 简直是神器,但随着项目越来越复杂…...
