在深入分析现有的基础玩法组件后,可以将其大概分为两类:
这两类在后续的讨论中会有一些区别
在线上时我们可能会需要在玩法组件的各个阶段做一些事情,所以这边就通过规范组件的状态、方法和事件来让组件统一
主要分为以下状态,有些状态可能就维持了一瞬间,有些可能是长时间存在的:
所有方法都设定为异步/Promise,都涉及到状态变化
上面的方法中,开始与结束方法对于可控/不可控组件有所区别,下图可以更直观的看出区别
enum StateConstant {
// 初始化状态
INIT = 0,
// 等待开始状态
WAIT_START = 1,
// 开始状态
START = 2,
// 等待结果状态
WAIT_END = 3,
// 结果状态
END = 4,
// 结果状态
PRIZE = 5,
// 重置状态
RESET = 6,
// 不可用状态
DISABLE = 100,
}
可以如下引入
import { StateConstant } from '@tuia/market-ui';
import StateConstant from '@tuia/market-ui/lib/constants/StateConstant'
根据上述规范,所有基础玩法组件都继承自BasicBase.ts
// 状态变化事件参数
export interface StateChangeDataType {
now: StateConstant;
pre: StateConstant;
}
名称 | 入参 | 出参 | 说明 |
---|---|---|---|
start | any | Promise | 开始方法 |
stop | any | Promise | 结束方法 |
reset | any | Promise | 重置方法 |
disable | any | Promise | 禁用方法 |
getState | 无 | StateConstant | 获取状态方法 |
名称 | 参数 | 说明 |
---|---|---|
stateChange | StateChangeDataType | 状态变化事件 |
clickStart | 无 | 开始按钮被点击时触发 |
暴露了部分computed
的数据,方便外部判断
参数 | 说明 | 类型 | 示例 |
---|---|---|---|
isWaitStart | 是否为等待开始状态 | boolean | true |
isDisable | 是否为禁用状态 | boolean | false |