乾坤微前端

241 阅读1分钟
  1. 主应用
  2. 1,需要在main.js配apps
  3. 1, 入口
  4. 2,激活路由
  5. 3,挂载的dom元素
  6. 4,组件名
  7. 5,传递给子组件的属性
  8. let apps={
    
  9.  entry:"",
    
  10.  name:'',
    
  11.  activeRule:"",
    
  12.  container:'#vue',
    
  13.  props:''
    
  14. }
  15. 2,需要在main.js注册一下
  16. registerMicropApps(apps)
  17. 3, 需要在main.js启动
  18. start()
  19. 3,需要在app.vue里写入口
  20. 子应用
  21. 1,在子应用main.js要配全局路径
  22. if(window.POWERED_BY_QIANKUN){ // 如果是qiankun使用到了,则会动态注入路径
  23. __webpack_public_path__ = window.__INJECTED_PUBLIC_PATH_BY_QIANKUN__; }
    
  24. 5,在子应用main.js里判断是不是独立运行
  25. let instance = null;
  26. function render(props) {
  27. instance =
  28. new Vue({
  29. router, render: h => h(App)
  30. }).$mount('#app')
  31. }
  32. if (!window.POWERED_BY_QIANKUN) { // 如果是独立运行,则手动调用渲染 render();
  33. }
  34. 6,在子应用main.js里导出钩子
  35. function bootstrap(props) { };
  36. export async function mount(props) { render(props); };
  37. export async function unmount(props) { instance.$destroy(); };
  38. 7,在子应用vue.config.js里配置
  39. module.exports = {
  40. devServer: {
  41. port: 10000, headers:{ 'Access-Control-Allow-Origin': '*' // 允许跨域 } },
  42. 8,在子应用vue.config.js打包配置
  43. configureWebpack: {
  44. output: {
  45.   library: 'vueApp', 
    
  46.   libraryTarget: 'umd' 
    
  47.   } 
    
  48. }
  49. };
  50. 9,乾坤微前端的好处
  51. 1,js 沙箱隔离,css 隔离,可以嵌入多种技术栈,独立开发,独立部署,不影响