0.1.6 • Published 6 months ago

virutal-application-core v0.1.6

Weekly downloads
-
License
MIT
Repository
-
Last release
6 months ago

Virtual Application Core

虚拟应用核心,使Web前端工程更接近一个PC应用工程,主要约束工程的整体运行框架。强调“应用”,“窗口”等概念,加强应用(窗口)之间的通信交互能力。

Install - 安装

安装依赖

npm install --save virtual-application-core

Usage - 基本用法

import { VirtualAppCore } from 'virtual-application-core'
import pkg from '@package.json' // 工程根路径下package.json,@package.json是别名用法,需要在构建工具中声明才能使用

const app = new VirtualAppCore({
    debug: true, // 开启debg
    name: pkg.name, // 应用名称
})

Step Event - 应用的生命周期

应用(窗口)装载时发生的事件, 其他应用可以订阅对应应用(窗口)的装载事件。
step:init(初始化) -> step:before-mount(挂载前) -> step:mount(挂载完成)

step.1 应用初始化 - 应用通信挂载

app.on('step:init', () => {
    return Promise.resolve() // 支持返回Promise对象来阻塞流程
})

step.2 应用挂载前

app.on('step:before-mount', () => {
    return Promise.resolve() // 支持返回Promise对象来阻塞流程
})

step.3 应用挂载完成

app.on('step:mount', () => {
    return Promise.resolve() // 支持返回Promise对象来阻塞流程
})

Custom Step 自定义装载事件

针对当前应用拓展生命周期, 需在sync为false,且需在init方法执行之前定义。

// 定义在step:init之前
app.setup({
    name: 'myAppSetupEventName',
    beforeEvent: 'step:init',
    doth() {
        // ....
        return Promise.resolve() // 返回Promise可以阻塞流程
    },
})

Step Reply Usage 重新执行应用事件

在目标应用的事件完成后,其他应用可以重新触发目标应用的事件,谨慎使用。

app.use('appName', 'step:init', { 'xxxx': 'xxxxxxxxxxx' })
app.use('appName', 'step:before-mount', { 'xxxx': 'xxxxxxxxxxx' })
app.use('appName', 'step:mount', { 'xxxx': 'xxxxxxxxxxx' })
app.use('appName', 'myAppSetupEventName', { 'xxxx': 'xxxxxxxxxxx' })