0.1.6 • Published 6 months ago
virutal-application-core v0.1.6
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' })