Files
vue-desktop/.qoder/repowiki/zh/content/事件系统/窗口表单事件管理器/窗口创建完成事件.md
2025-10-10 10:37:11 +08:00

76 lines
3.6 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 窗口创建完成事件
<cite>
**本文档引用文件**
- [WindowFormEventManager.ts](file://src/events/WindowFormEventManager.ts)
- [WindowFormService.ts](file://src/services/WindowFormService.ts)
</cite>
## 目录
1. [事件语义与调用时机](#事件语义与调用时机)
2. [应用场景分析](#应用场景分析)
3. [事件监听代码范例](#事件监听代码范例)
4. [生命周期时序关系](#生命周期时序关系)
## 事件语义与调用时机
`windowFormCreated` 事件在新窗口实例成功挂载并完成首次渲染后触发,标志着窗口已完全初始化并可交互。该事件不携带任何参数,作为全局窗口创建完成的信号。
根据 `WindowFormEventManager.ts` 中的定义,此事件是 `IWindowFormEvent` 接口的一部分,由 `wfem` 事件管理器负责分发。虽然当前实现中未直接显示触发逻辑,但结合 `WindowFormService.ts` 的窗口创建流程可知,该事件应在 `createWindow` 方法执行完毕、DOM 元素已添加至页面且应用内容加载完成后被通知。
**Section sources**
- [WindowFormEventManager.ts](file://src/events/WindowFormEventManager.ts#L41-L41)
- [WindowFormService.ts](file://src/services/WindowService.ts#L83-L118)
## 应用场景分析
### 启动引导
在系统启动或模块初始化过程中,通过监听 `windowFormCreated` 事件可以确保所有核心窗口均已准备就绪,从而安全地执行后续引导逻辑,如自动聚焦主窗口或初始化关联组件。
### 任务栏更新
当新窗口创建完成后,任务栏组件可通过监听该事件实时更新其窗口列表,确保用户界面状态与实际运行情况保持同步。
### 快捷方式激活
从桌面快捷方式启动应用时,该事件可用于确认目标窗口已成功打开,进而执行焦点切换或动画展示等增强用户体验的操作。
**Section sources**
- [WindowFormEventManager.ts](file://src/events/WindowFormEventManager.ts#L41-L41)
- [WindowFormService.ts](file://src/services/WindowService.ts#L83-L118)
## 事件监听代码范例
以下为监听 `windowFormCreated` 事件并执行后续操作的典型代码模式:
```typescript
import { wfem } from '@/events/WindowFormEventManager'
// 监听窗口创建完成事件
wfem.addEventListener('windowFormCreated', () => {
// 执行日志记录
console.log('新窗口创建完成')
// 执行自动聚焦或其他初始化操作
// focusMainWindow()
})
```
此类监听器常用于执行一次性初始化任务,例如设置默认焦点、注册快捷键、加载用户偏好设置或发送性能监控指标。
**Section sources**
- [WindowFormEventManager.ts](file://src/events/WindowFormEventManager.ts#L60-L60)
- [WindowFormService.ts](file://src/services/WindowService.ts#L83-L118)
## 生命周期时序关系
`windowFormCreated` 事件作为窗口生命周期的起点,在以下关键阶段之后发生:
1. **CREATING**:窗口对象创建
2. **LOADING**DOM 元素构建与插入
3. **ACTIVE**:窗口激活并获得焦点
它早于任何用户交互事件(如 `windowFormFocus`)和状态变更事件(如 `windowFormMinimize`),是首个表示窗口已进入稳定可用状态的全局事件。
与其他事件相比,`windowFormCreated` 是唯一无参数的创建完成信号,而其他事件如 `windowFormDataUpdate` 则携带具体的状态数据。这种设计使其成为理想的初始化钩子点。
**Section sources**
- [WindowFormEventManager.ts](file://src/events/WindowFormEventManager.ts#L41-L41)
- [WindowFormService.ts](file://src/services/WindowService.ts#L83-L118)