42 lines
1.2 KiB
JavaScript
42 lines
1.2 KiB
JavaScript
|
/**
|
|||
|
*公共数据
|
|||
|
*/
|
|||
|
import {initGlobalState} from 'qiankun';
|
|||
|
import store from '@/store';
|
|||
|
import router from '@/router';
|
|||
|
import Vue from 'vue';
|
|||
|
import {ACCESS_TOKEN} from "@/store/mutation-types"
|
|||
|
|
|||
|
//定义传入子应用的数据
|
|||
|
export function getProps() {
|
|||
|
return {
|
|||
|
data: {
|
|||
|
publicPath: process.env.BASE_URL,
|
|||
|
token: Vue.ls.get(ACCESS_TOKEN),
|
|||
|
store,
|
|||
|
router
|
|||
|
}
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
/**
|
|||
|
* 定义全局状态,并返回通信方法,在主应用使用,微应用通过 props 获取通信方法。
|
|||
|
* @param state 主应用穿的公共数据
|
|||
|
*/
|
|||
|
export function initGlState(info = {userName: 'admin'}) {
|
|||
|
// 初始化state
|
|||
|
const actions = initGlobalState(info);
|
|||
|
// 设置新的值
|
|||
|
actions.setGlobalState(info);
|
|||
|
// 注册 观察者 函数 - 响应 globalState 变化,在 globalState 发生改变时触发该 观察者 函数。
|
|||
|
actions.onGlobalStateChange((newState, prev) => {
|
|||
|
// state: 变更后的状态; prev 变更前的状态
|
|||
|
console.info("newState", newState)
|
|||
|
for (const key in newState) {
|
|||
|
console.info("onGlobalStateChange", key)
|
|||
|
}
|
|||
|
});
|
|||
|
// 将action对象绑到Vue原型上,为了项目中其他地方使用方便
|
|||
|
Vue.prototype.$actions = actions;
|
|||
|
}
|