应用启动 (App Start)

启动 flexue app


// 导入入口方法;
import { runApp } from "flexue";
// 导入样式;
import "flexue/style.css";

// 导入当前应用的组件;
import TestComponent from "./components/testcomponent.vue";

runApp(
  // 挂载应用入口的 HTML 元素的 id;
  "#app",

  // 应用配置;
  {
    // ...
    title: "我的应用",
    
    // 应用入口组件;
    // entry: myApp,
  },

  // 初始化函数(initializer);
  // appContext : flexue 应用上下文; vueApp : vue app 对象;
  (appContext, vueApp) => {
    // 注册应用组件;
    // vueApp.component("x-test", TestComponent);
  }
);

入口函数 (runApp)

  • runApp 函数的声明

/**
 * 运行一个 flexue 应用;
 *
 * @param {String} mountedElementId 挂载应用入口的 HTML 元素的ID;
 * @param {{ title, logo, entry }} appConfig 应用配置选项;
 * @param {(appContext, vueApp)=>{}} initializer 初始化函数;
 *
 * @returns 返回创建的 app 实例(同时也是一个 vue app 实例);
 */
function runApp(mountedElementId, appConfig = {}, initializer) {
    //....
}

应用配置 (App Config)

// 应用配置 appConfig;
{
    // 应用标题;非必选;
    // 由默认的入口组件呈现;
    // 后端的 galaxyService 提供的应用元数据设置的此项属性具有更高优先级,可覆盖此选项;
    title,

    // 应用图标;非必选;
    // 由默认的入口组件呈现;
    // 后端的 galaxyService 提供的应用元数据设置的此项属性具有更高优先级,可覆盖此选项;
    logo,

    // 当前应用配置的名称;
    profile,

    // 应用菜单;非必选;
    // 由默认的入口组件呈现;
    // 后端的 galaxyService 提供的应用元数据设置的此项属性具有更高优先级,可覆盖此选项;
    menu = { menuItems: [] },

    // 应用工具栏;非必选;
    // 由默认的入口组件呈现;
    // 后端的 galaxyService 提供的应用元数据设置的此项属性具有更高优先级,可覆盖此选项;
    toolbar = { actions: [] },

    /**
     * HTTP 相关的配置;
     *  {
     *     // 所有 HTTP 请求都统一加入的前缀;例如: /api ;
     *     pathPrefix,
     *
     *     // 不适用 pathPrefix 选项的例外 url 清单,
     *     // 清单中的 URL 在请求时不自动加入 pathPrefix 选项指定的前缀;
     *     prefixExcludedList: []
     *  }
     */
    http,

    // 是否采用 galaxy 服务;
    // 如果为 true ,则从后端的 galaxy 服务中获取元数据和服务注册信息;
    enableGalaxyService = false,

    /**
     * galaxy 服务配置选项;
     * {
     *
     *
     *     // 服务注册元数据类型; 目前只支持一种:SWAGGER_V2 ;
     *     serviceRegisterType,
     *
     *     // 服务元数据的地址;
     *     serviceMetadataUrl,
     * }
     */
    galaxyService,

    /**
     * 应用元数据的地址;
     *     galaxyAppMetadataUrl;
     *  默认: "/application/metadata";
     */
    galaxyAppMetadataUrl,
    /**
     * 静态的galaxy应用元数据;
     */
    galaxyAppMetadata,

    //----------------- 组件相关 -----------------

    // 入口组件;可选;
    // 未设置时将采用默认的入口组件;
    entry,

    // 入口组件属性;可选;
    entryProps,

    // 路由视图列表;当使用了 x-framework 或 x-page 组件时,视图将呈现在其中的视口区域;
    views,

    // 默认视图,即首次打开时呈现的视图;
    defaultView,

    // 默认视图,即首次打开时呈现的视图;
    view404,

    /**
     * 组件安装;
     *
     * 以 vueApp.use(componentsInstaller)  方式注册 ;
     *
     * 调用时机比 libs 早;
     */
    componentsInstaller,

    /**
     * 要注册的库的数组;
     *
     * 每一个库 lib 都会被自动地以 vueApp.use(lib)  方式注册;
     */
    libs
}

初始化回调 (Initializer)

 /**
   * 初始化函数;
   * appContext : flexue 应用上下文;只读对象;包含 flexue 应用运行的信息和基础对象;
   * vueApp : vue 的 app 对象,由 vue 提供的 createApp 函数创建;
   */
 function (appContext, vueApp) : Promise {
    // 注册应用组件;
    // vueApp.component("x-test", TestComponent);
  }
Last Updated:
Contributors: huanghaiquan
扫码咨询