NuclearDispersionSystem/ant-design-vue-jeecg/node_modules/qiankun/es/effects.js
2023-09-14 14:47:11 +08:00

38 lines
1.2 KiB
Java

/**
* @author Kuitos
* @since 2019-02-19
*/
import { getMountedApps, navigateToUrl } from 'single-spa';
var firstMountLogLabel = '[qiankun] first app mounted';
if (process.env.NODE_ENV === 'development') {
console.time(firstMountLogLabel);
}
export function setDefaultMountApp(defaultAppLink) {
// can not use addEventListener once option for ie support
window.addEventListener('single-spa:no-app-change', function listener() {
var mountedApps = getMountedApps();
if (!mountedApps.length) {
navigateToUrl(defaultAppLink);
}
window.removeEventListener('single-spa:no-app-change', listener);
});
}
export function runDefaultMountEffects(defaultAppLink) {
console.warn('[qiankun] runDefaultMountEffects will be removed in next version, please use setDefaultMountApp instead');
setDefaultMountApp(defaultAppLink);
}
export function runAfterFirstMounted(effect) {
// can not use addEventListener once option for ie support
window.addEventListener('single-spa:first-mount', function listener() {
if (process.env.NODE_ENV === 'development') {
console.timeEnd(firstMountLogLabel);
}
effect();
window.removeEventListener('single-spa:first-mount', listener);
});
}