|
/*
* @Author: Devin
* @Date: 2022-11-10 15:07:57
* @LastEditors: Devin
* @LastEditTime: 2023-02-23 16:43:29
* @Description: 主配置
*/
import { createApp } from 'vue';
import CommonUI from 'common-module-ui';
import 'common-module-ui/lib/style.css';
import { setEventBus } from './utils/eventBus.js';
import { setupGlobalComponents } from './components/index';
// import CommonUI from './common-ui/common-module-ui.js';
// import './common-ui/style.css';
import App from './App.vue';
import router from './router';
import store from './store';
import { setupProductComponents } from './views/_components/index.js';
/**
* 配置qiankun
*/
// eslint-disable-next-line import/order
import {
renderWithQiankun,
qiankunWindow
} from 'vite-plugin-qiankun/dist/helper';
let app: any = null;
function render(props: any = {}) {
const { container } = props;
app = createApp(App);
setEventBus(app);
app.use(router);
app.use(CommonUI);
console.log(CommonUI);
app.use(store);
setupGlobalComponents(app);
// 注册项目全局组件
setupProductComponents(app);
app?.mount(container ? container.querySelector('#app') : '#app');
console.log('开始加载相关内容');
}
renderWithQiankun({
mount(props: any) {
props.onGlobalStateChange((state: any) => {
store.commit('setMainProduct', state.setMainProduct);
store.commit('changeShowInfo', state.showInfo);
localStorage.setItem('mainProduct', JSON.stringify(state.mainProduct));
}, true);
render(props);
},
bootstrap() {
console.log('%c', 'color:green;', ' ChildOne bootstrap');
},
update() {
console.log('%c', 'color:green;', ' ChildOne update');
},
unmount(props: any) {
console.log('unmount', props);
app.unmount();
app._container.innerHTML = '';
app = null;
}
});
if (!qiankunWindow.__POWERED_BY_QIANKUN__) {
console.log('并不是qiankun渲染');
render();
}
|