UNPKG

@farris/devkit-vue

Version:
67 lines (66 loc) 1.43 kB
import { ViewModel } from '../viewmodel/index'; import { SmState, SmRenderState, SmRender } from './types'; import { StateMachineChange } from './state-machine-change'; import { StateMachineContext } from './state-machine-context'; /** * 状态机 */ export declare class StateMachine { [key: string]: any; /** * 状态机上下文 */ protected context: StateMachineContext; /** * ViewModel上下文 */ protected viewModel: ViewModel; /** * 当前状态 */ currentState: string; /** * 状态字典 */ states: Map<string, SmState>; /** * 渲染状态字典 */ renderStates: Map<string, SmRenderState>; /** * 渲染器字典 */ renders: Map<string, SmRender>; /** * 变更副作用管理器 */ private effectManager; /** * 构造函数 */ constructor(viewModel: ViewModel); /** * 初始化状态机 */ init(): void; /** * 设置初始状态 */ setCurrentState(newState: string): void; /** * 状态迁移 */ transitTo(newState: string): void; /** * 渲染全部可视化状态 */ render(): void; /** * 触发变更 */ triggerChange(change: StateMachineChange): void; /** * 监听变更 */ watchChange(changeEffectFunc: (change: StateMachineChange) => void): () => void; }