qiankun 微服务实现主题换肤
关注公众号: 微信搜索 前端工具人
; 收货更多的干货
原文链接: 自己掘金文章: https://juejin.cn/post/7009214640030744589
一、项目介绍
主服务
: 提供左侧导航;顶部快捷操作、用户信息、退出登录等多个子服务
: 提供对应的业务功能- 前端微服务详细构建步骤和常见问题,可查看以往文章
https://juejin.cn/post/6943763969576271879
二、需求
为用户提供自定义换肤功能,页面对应的导航、svg、button、字体颜色
...等等都要相应的切换
三、思路
-
因为系统由多个服务共同构建,这种改变
全局的操作
肯定要放在主服务
; -
通过
主服务
分发通知各个子服务
, 进行相应的改变- 主服务触发
setGlobalState
事件, 传递参数 - 各个子服务通过
onGlobalStateChange
事件接受参数
- 主服务触发
四、换肤方式
4.1. CSS
样式覆盖
- 点击对应主题后给父节点增加不同的类名;
- 不同主题下的各个组件样式各写一套;
4.2. css
文件替换
- 点击对应主题后引入不同的主题css文件;
- 不同主题下的各个组件样式各写一套且定义不同的文件;
4.3 css
变量
- 初始定义对应
css
变量 - 点击对应主题后改变
css
变量
该篇文章使用的是 4.3
五、代码片段
5.1 主服务 variable.less
5.2 主服务初始化css
变量挂载到对应节点, 改变 css
变量 也是通过下面方法
5.2 主服务切换主题文件
5.3 子服务接收参数
注:
- 使用了
qiankun
的样式隔离
则需求这一步, 由子服务自己更新主题 未使用样式隔离
,则不需要下面这步, 统一由主服务更新主题, 样式层级需求高点,避免被子服务覆盖
有段时间没写博客了、文章写的比较粗糙;不知道有没有遗漏、有问题请留言;
__EOF__

本文作者:赖先生
本文链接:https://www.cnblogs.com/ljx20180807/p/15911991.html
关于博主:评论和私信会在第一时间回复。或者直接私信我。
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角【推荐】一下。您的鼓励是博主的最大动力!
本文链接:https://www.cnblogs.com/ljx20180807/p/15911991.html
关于博主:评论和私信会在第一时间回复。或者直接私信我。
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角【推荐】一下。您的鼓励是博主的最大动力!
标签:
qiankun
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix