Skip to content

基座SDK

该基座SDK主要是提供给基座去集成使用。

1. 安装和使用

shell
pnpm add @mfejs/mfapp

创建基座并启动加载。

js
import { createBay } from '@mfejs/mfapp'
const bay = createBay({
    apps: [
        {
            container: '#container',
            name: 'vue3子应用',
            entry: 'http://127.0.0.1:8090/',
            activeRule: '/vue3-app/'
        },
        {
            container: '#container',
            name: 'vue2父应用',
            entry: 'http://localhost:8095/',
            activeRule: '/vue2-parent-app/'
        },
        {
            container: '#container',
            name: 'vue3子应用2',
            entry: 'http://localhost:8092/',
            activeRule: '/vue3-app2/'
        },
    ]
});
bay.start();

2. API

createBay(options: BayOptions)

创建基座实例

js
function createBay(options: BayOptions): IBay

基座参数选项BayOptions如下所示:

js
export interface BayOptions {
    /**
     * 基础路径, 默认从 process.env.MAPP_BASE_URL 中获取,如果没有则使用 /
     */
    baseUrl?: string;
    /**
     * 页面实现
     */
    pages?: Partial<BuiltinPages>;
    /**
     * 微应用注册
     */
    apps: MicroApp[];
    /**
     * 自定义路由
     */
    routes?: RouteRecordRaw[];
    /**
     * 基座钩子
     */
    hooks?: Partial<BayHooks>;
    /**
     * 基座就绪断言
     * 返回一个 promise, 表示基座已经就绪,基座就绪后子应用才会开始挂载
     */
    bayReady?: () => Promise<void>;
    /**
     * 网络拦截器,可以用于检测 AJAX/fetch 的请求和响应
     * 你也可以通过 registerNetworkInterceptor 方法来注册
     */
    networkInterceptors?: INetworkInterceptorRegister[];
    /**
     * 指定部分特殊的动态加载的微应用资源(css/js) 不被 qiankun 劫持处理
     */
    excludeAssetFilter?: ExcludeAssetFilter;
    /**
     * 根组件。将传递给 createApp
     * 必须携带 RouterView
     */
    rootComponent?: Component;
}

getBay()

获取基座实例

js
function getBay(): IBay

状态管理

前端状态管理机制提供多模块管理能力,主应用和子应用都可以在模块管理中创建模块state、actions和modules。

Released under the MIT License.