# 乾坤微前端问题汇总
# 1. 子项目(vue3+vite)挂载主应用失败
解决: 修改 vite.config.js 的 base 配置。
export default defineConfig(({ mode }) => {
const env = loadEnv(mode, process.cwd())
const baseMap = {
'development': `/${name}/`,
'test': `https://test-hwork.haier.net/${name}/`,
'staging': `https://pre-hwork.haier.net/${name}/`,
'production': `https://hwork.haier.net/${name}/`
}
let config = {
base: baseMap[env.VITE_NODE_ENV],
...... 省略不相关的代码
}
return config
})
# 2. 不同的子项目页面之间跳转失败
使用vue-cli构建的项目,不同的子应用,打包部署完后,跳转失效。
解决:
(1) 修改vue.config.js文件;
(2) 修改router.js,不要用懒加载方式加载组件。
# 3. 子应用获取不到主应用传递过来的store
修改子应用main.js的mount方法
export async function mount(props) {
props.onGlobalStateChange &&
// props.onGlobalStateChange()方法是用来监听主应用传值,obj是在主应用action.js中初始化的对象值,当主应用调用setGlobalState()方法改变值的时候,在这里都可以监听到最新的值
(await props.onGlobalStateChange(async(obj) => {
if (obj.userInfo.userCode && obj.limitsList && obj.limitsList.length > 0) {
render(props)
}
}, true))
}