Skip to content

UIInstance API 文档

本文档由 DeepSeek R1 模型生成并微调。

实现 IUIInstance 接口

类描述

UIInstance 表示通过 GameUI 模板创建的具体 UI 实例,用于管理单个 UI 实例的状态和数据绑定。实现了 IUIInstance 接口。


属性说明

属性名类型描述
keynumber只读,实例的唯一标识(用于 Vue 的 key 属性)
uiIGameUI<C>只读,关联的 UI 配置实例(即创建该实例的 GameUI 模板)
vBindUIProps<C>只读,传递给 UI 组件的响应式 Props 对象
hiddenboolean当前实例是否处于隐藏状态
alwaysShowboolean是否强制保持显示(不受显示模式影响)

构造方法

typescript
function constructor(
    ui: IGameUI<C>,
    vBind: UIProps<C>,
    alwaysShow: boolean = false
): UIInstance;
  • 参数
    • ui: 关联的 GameUI 配置实例
    • vBind: 初始化的组件 Props 对象
    • alwaysShow: 是否强制保持显示(默认 false

注意事项:一般不需要手动创建 UIInstance 实例,请使用 UIController.open 打开 UI 并创建实例。


方法说明

setVBind

typescript
function setVBind(data: Partial<Props<C>>, merge?: boolean): void;

更新组件的响应式 Props。

  • 参数
    • data: 需要更新的数据(部分 Props)
    • merge: 是否与现有数据合并(默认 true),若为 false 则完全覆盖

示例

typescript
// 合并更新音量值
instance.setVBind({ volume: 60 });

// 覆盖所有 Props
instance.setVBind({ theme: 'dark' }, false);

hide

typescript
function hide(): void;

控制实例的显示状态(直接操作 hidden 属性)。

示例

typescript
instance.hide(); // 隐藏 UI
setTimeout(() => instance.show(), 1000); // 1 秒后显示

show

typescript
function show(): void;

控制实例的显示状态(直接操作 hidden 属性)。

示例

typescript
instance.show(); // 隐藏 UI
setTimeout(() => instance.show(), 1000); // 1 秒后显示

总使用示例

typescript
import { myController, MyUI } from './myUI';

const myIns = myController.open(MyUI, { title: '警告' });

// 动态更新 props
myIns.setVBind({ title: '错误' });

// 设置显示状态
myIns.show();