Appearance
使用微应用
通过微前端方式接入的应用,融合效果更好。
提示
如果你使用的是 umi,可以直接使用官方的接入教程。详见 微前端 - 配置子应用
接入指南
1、改造入口文件
遵循 qiankun 官方文档改造入口文件。
警告
- 代码运行在沙箱,请避免动态插入JS代码;
- 使用CSS前缀,防止多应用共存出现样式冲突;
这里以 Vue cli >= 5.0 项目接入进行举例:
js
const { defineConfig } = require('@vue/cli-service');
module.exports = defineConfig({
configureWebpack: {
output: {
library: '<your library name>',
libraryTarget: 'umd',
uniqueName: 'webpackJsonp_mediinfo_<your library name>',
},
},
devServer: {
allowedHosts: 'all',
headers: {
'Access-Control-Allow-Origin': '*',
'Access-Control-Allow-Methods': '*',
'Access-Control-Allow-Headers': '*',
},
},
});js
// Note: 即使你没有什么要处理的,此函数也不能省略
export async function bootstrap() {
// do something...
}
export async function mount(options) {
// 在此实现
}
export async function unmount(options) {
// do something...
}
if (window.__POWERED_BY_QIANKUN__) {
// 修改变量,以修复构建资源加载问题
// https://qiankun.umijs.org/zh/faq#%E4%B8%BA%E4%BB%80%E4%B9%88%E5%BE%AE%E5%BA%94%E7%94%A8%E5%8A%A0%E8%BD%BD%E7%9A%84%E8%B5%84%E6%BA%90%E4%BC%9A-404
const resource = new URL(
process.env.BASE_URL,
window.__INJECTED_PUBLIC_PATH_BY_QIANKUN__,
);
__webpack_public_path__ = resource.toString();
}具体教程,详见 使用 Vue 框架。
2、解决样式冲突问题
如果你的样式用如下方案,那么几乎不存在改造问题:
- 使用 css-in-js 技术;
- 采用 CSS 前缀方案,如:
BEM或其他;
如果你使用的是 .title 这种,那么就需要处理下兼容。
调试应用
当你改造完毕,你可以:
- 在 Lyra 上配置应用与菜单,部署后运行;
请联系我司现场运维人员 - 可通过 浏览器插件 直接调试;
如有疑问或需要进一步的帮助,请随时联系我们的技术支持团队。