import Vue from "vue"; import App from "./App.vue"; import less from "less"; // 学前儿童卫生与健康 // import './books/content/css/default.less'; // 嵌入式组态控制技术 // import './books/embedded/assets/main.less'; import ElementUI from "element-ui"; import "element-ui/lib/theme-chalk/index.css"; import store from "./store"; Vue.config.productionTip = false; // 自定义配置 import config from "@/assets/js/config"; Vue.prototype.config = config; // 请求处理 import MG from "@/assets/js/middleGround/WebMiddleGroundApi"; Vue.prototype.MG = MG; //工具类 import toolClass from "./assets/js/toolClass"; Vue.prototype.tool = toolClass; // 时间处理 import moment from "moment"; Vue.prototype.moment = moment; Vue.use(less); Vue.use(ElementUI); let instance = null; function render(props = {}) { const { container, onGlobalStateChange, setGlobalState } = props; Vue.prototype.onGlobalStateChange = onGlobalStateChange; Vue.prototype.setGlobalState = setGlobalState; Vue.prototype.container = container; instance = new Vue({ // router, store, render: (h) => h(App) }).$mount(container ? container.querySelector("#app") : "#app"); } // 独立运行时 if (!window.__POWERED_BY_QIANKUN__) { render(); } // qiankun export async function bootstrap() {} export async function mount(props) { console.log(props, "子层propspropspropsprops"); props.onGlobalStateChange((state, prev) => { // state: 变更后的状态; prev 变更前的状态 console.log("子层变化:", state, prev); // 状态变化同步vuex,用于各页面调用 store.commit("setQiankun", state); }); props.setGlobalState({ state: 3, // 应用挂载完成,同时用于触发一次stateChange将state挂载在vuex当中 }); render(props); } export async function unmount() { instance.$destroy(); instance.$el.innerHTML = ""; instance = null; } // 增加 update 钩子以便主应用手动更新微应用 // export async function update(props) { // render(props); // }