• 【qiankun乾坤】从0到1搭建微前端


    微前端是一种将一个大型单体应用拆分成多个小型应用的架构方式。它可以让不同的团队独立开发部署自己的应用,同时这些应用可以集成到一个统一的底座应用中,对用户来说就是一个完整的应用。

    qiankun 是阿里开源的一个微前端实现框架,可以帮助我们比较容易地实现微前端架构
    在这里插入图片描述

    下面来介绍如何从0到1使用 qiankun + vue 搭建一个微前端框架。

    准备工作

    首先我们需要创建两个独立的 vue 项目,一个是主应用 shell,一个是微应用 app1。
    两个项目使用 vue-cli 分别初始化,并安装 qiankun

    shell

    vue create micro-frontend-shell
    cd micro-frontend-shell
    npm install qiankun # 或 yarn add qiankun
    
    • 1
    • 2
    • 3

    app1

    vue create micro-frontend-app1
    cd micro-frontend-app1
    npm install qiankun # 或 yarn add qiankun
    
    • 1
    • 2
    • 3

    配置主应用

    在主应用 shell 中,我们需要设置一些基础的 qiankun 配置。

    // main.js
    import { 
      registerMicroApps,
      start 
    } from 'qiankun';
    
    registerMicroApps([
      {
        name: 'app1',
        entry: '//localhost:8080',
        container: '#container',
        activeRule: '/app1'
      }
    ]);
    
    start();
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16

    registerMicroApps 注册微应用的基本信息,包括名称、入口、挂载元素、激活规则等。start 方法启动 qiankun。
    然后在 App.vue 中添加微应用的容器:

      
    <div id="container">div>
    
    • 1
    • 2

    此时主应用的基础配置已经完成。

    配置微应用

    在 app1 中,我们需要做一些适配,让它可以作为微应用被主应用加载:

    // main.js
    import { createApp } from 'vue';
    import App from './App.vue';
    
    let app = null;
    
    function render() {
      app = createApp(App);
      app.mount('#app'); 
    }
    
    // 独立运行时直接渲染应用
    if (!window.__POWERED_BY_QIANKUN__) {
      render();
    }
    
    export async function bootstrap() {
      console.log('react app bootstrap');
    }
    
    export async function mount(props) {
      console.log('props from main framework', props);
      render(props);  
    }
    
    export async function unmount() {
      app.unmount();
      app._container.innerHTML = '';
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29

    根据是否是在 qiankun 中判断是否直接渲染应用。
    导出生命周期钩子方法,这些方法会在微应用加载/卸载时被主应用调用。

    这样微应用的配置也完成了。

    启动和测试

    我们可以分别启动两个项目,访问主应用,然后根据路由规则验证是否可以成功加载微应用。

    一个简单的基于 qiankun + vue 的微前端框架就搭建完成了。

  • 相关阅读:
    【前端】NodeJS核心知识点整理
    快速安装docker-compose
    Redis中间件学习笔记(二)
    Java面试题200+大全(合适各级Java人员)
    JAVA计算机毕业设计在线云音乐系统Mybatis+源码+数据库+lw文档+系统+调试部署
    【单例模式 Objective-C语言】
    一、入行程序员的一波三折
    @ApiModel 和 @ApiModelProperty
    计网--传输层
    RPC 对比 HTTP
  • 原文地址:https://blog.csdn.net/qq_43277404/article/details/132866213