ArkTS事件
事件名称方法签名触发条件用途示例emit手动触发自定义事件组件间通信事件名称方法签名触发条件用途示例on监听自定义事件父组件监听子组件事件事件名称方法签名触发条件用途示例发送自定义事件时组件间通信接收自定义事件时跨组件监听。
·
常见鸿蒙ArkTS事件功能
一、基础事件类型
1.1 点击事件
| 事件名称 | 方法签名 | 触发条件 | 用途示例 |
|---|---|---|---|
| onClick | onClick(event: Callback<ClickEvent>): T |
组件被点击时触发 | 按钮交互、导航跳转 |
| onClickWithDistance | onClick(event: Callback<ClickEvent>, distanceThreshold: number): T |
点击且移动距离不超过阈值时触发 | 精确点击控制 |
1.2 触摸事件
| 事件名称 | 方法签名 | 触发条件 | 用途示例 |
|---|---|---|---|
| onTouch | onTouch(event: (event: TouchEvent) => void): T |
手指触摸屏幕时触发 | 手势识别、拖拽操作 |
| onTouchStart | onTouchStart(event: (event: TouchEvent) => void): T |
触摸开始时触发 | 触摸反馈动画 |
| onTouchMove | onTouchMove(event: (event: TouchEvent) => void): T |
触摸移动时触发 | 滑动操作、绘图功能 |
| onTouchEnd | onTouchEnd(event: (event: TouchEvent) => void): T |
触摸结束时触发 | 完成手势操作 |
| onTouchCancel | onTouchCancel(event: (event: TouchEvent) => void): T |
触摸被系统取消时触发 | 中断操作处理 |
1.3 焦点事件
| 事件名称 | 方法签名 | 触发条件 | 用途示例 |
|---|---|---|---|
| onFocus | onFocus(event: () => void): T |
组件获得焦点时触发 | 输入框聚焦效果 |
| onBlur | onBlur(event: () => void): T |
组件失去焦点时触发 | 表单验证、保存输入 |
1.4 按键事件
| 事件名称 | 方法签名 | 触发条件 | 用途示例 |
|---|---|---|---|
| onKeyEvent | onKeyEvent(event: (event: KeyEvent) => void): T |
键盘按键被按下时触发 | 快捷键功能、游戏控制 |
| onKeyPreIme | onKeyPreIme(event: Callback<KeyEvent, boolean>): T |
输入法按键事件触发前 | 输入法预处理 |
1.5 鼠标事件
| 事件名称 | 方法签名 | 触发条件 | 用途示例 |
|---|---|---|---|
| onMouse | onMouse(event: (event: MouseEvent) => void): T |
鼠标操作时触发 | 鼠标悬停效果、点击操作 |
| onHover | onHover(event: (isHover: boolean, event: HoverEvent) => void): T |
鼠标悬停时触发 | 悬停显示详情 |
| onHoverMove | onHoverMove(event: Callback<HoverEvent>): T |
鼠标在悬停状态下移动时 | 精细控制交互 |
1.6 滚动事件
| 事件名称 | 方法签名 | 触发条件 | 用途示例 |
|---|---|---|---|
| onScroll | onScroll(event: (event: ScrollEvent) => void): T |
组件滚动时触发 | 无限滚动加载、滚动动画 |
| onScrollEnd | onScrollEnd(event: () => void): T |
滚动结束时触发 | 滚动结束后的操作 |
二、生命周期事件
2.1 组件生命周期
| 事件名称 | 方法签名 | 触发条件 | 用途示例 |
|---|---|---|---|
| onAttach | onAttach(callback: Callback<void>): T |
组件挂载到DOM时触发 | 初始化数据、订阅事件 |
| onDetach | onDetach(callback: Callback<void>): T |
组件从DOM卸载时触发 | 清理资源、取消订阅 |
| onAppear | onAppear(event: () => void): T |
组件显示时触发 | 显示动画、加载数据 |
| onDisAppear | onDisAppear(event: () => void): T |
组件隐藏时触发 | 暂停动画、保存状态 |
2.2 视图生命周期
| 事件名称 | 方法签名 | 触发条件 | 用途示例 |
|---|---|---|---|
| onPageShow | onPageShow(callback: () => void): void |
页面显示时触发 | 页面数据刷新 |
| onPageHide | onPageHide(callback: () => void): void |
页面隐藏时触发 | 页面状态保存 |
三、拖拽与拖放事件
3.1 拖拽源事件
| 事件名称 | 方法签名 | 触发条件 | 用途示例 |
|---|---|---|---|
| onDragStart | `onDragStart(event: (event: DragEvent, extraParams?: string) => CustomBuilder | DragItemInfo): T` | 拖拽开始时触发 |
| onDragEnd | onDragEnd(event: (event: DragEvent, extraParams?: string) => void): T |
拖拽结束时触发 | 清理拖拽状态 |
3.2 拖放目标事件
| 事件名称 | 方法签名 | 触发条件 | 用途示例 |
|---|---|---|---|
| onDragEnter | onDragEnter(event: (event: DragEvent, extraParams?: string) => void): T |
拖拽物进入目标区域时 | 高亮目标区域 |
| onDragMove | onDragMove(event: (event: DragEvent, extraParams?: string) => void): T |
拖拽物在目标区域内移动时 | 实时反馈 |
| onDragLeave | onDragLeave(event: (event: DragEvent, extraParams?: string) => void): T |
拖拽物离开目标区域时 | 移除高亮效果 |
| onDrop | onDrop(eventCallback: OnDragEventCallback, dropOptions?: DropOptions): T |
拖拽物在目标区域释放时 | 处理拖放数据 |
3.3 拖拽预处理
| 事件名称 | 方法签名 | 触发条件 | 用途示例 |
|---|---|---|---|
| onPreDrag | onPreDrag(event: (preDragStatus: PreDragStatus) => void): T |
拖拽前的准备阶段 | 确认是否允许拖拽 |
四、区域与可见性事件
4.1 区域变化
| 事件名称 | 方法签名 | 触发条件 | 用途示例 |
|---|---|---|---|
| onAreaChange | onAreaChange(event: (oldValue: Area, newValue: Area) => void): T |
组件区域变化时触发 | 响应式布局调整 |
4.2 可见性变化
| 事件名称 | 方法签名 | 触发条件 | 用途示例 |
|---|---|---|---|
| onVisibleAreaChange | onVisibleAreaChange(ratios: Array<number>, event: (isVisible: boolean, currentRatio: number) => void): T |
可见区域比例变化时 | 懒加载、曝光统计 |
五、自定义事件
5.1 自定义事件触发
| 事件名称 | 方法签名 | 触发条件 | 用途示例 |
|---|---|---|---|
| emit | emit(eventName: string, ...args: any[]): void |
手动触发自定义事件 | 组件间通信 |
5.2 自定义事件监听
| 事件名称 | 方法签名 | 触发条件 | 用途示例 |
|---|---|---|---|
| on | on(eventName: string, callback: (...args: any[]) => void): T |
监听自定义事件 | 父组件监听子组件事件 |
六、手势事件
6.1 手势识别
| 事件名称 | 方法签名 | 触发条件 | 用途示例 |
|---|---|---|---|
| onGesture | onGesture(gesture: Gesture, callback: () => void): T |
特定手势识别成功时 | 双指缩放、旋转操作 |
| onPan | onPan(event: (event: GestureEvent) => void, options?: PanGestureOptions): T |
平移手势时 | 滑动翻页、拖拽排序 |
| onPinch | onPinch(event: (event: GestureEvent) => void, options?: PinchGestureOptions): T |
缩放手势时 | 图片缩放、地图缩放 |
| onRotate | onRotate(event: (event: GestureEvent) => void, options?: RotateGestureOptions): T |
旋转手势时 | 图片旋转、角度调整 |
| onDoubleClick | onDoubleClick(event: (event: GestureEvent) => void): T |
双击手势时 | 放大查看详情 |
| onLongPress | onLongPress(event: (event: GestureEvent) => void, options?: LongPressGestureOptions): T |
长按手势时 | 显示菜单、删除确认 |
七、动画事件
7.1 动画生命周期
| 事件名称 | 方法签名 | 触发条件 | 用途示例 |
|---|---|---|---|
| onAnimationStart | onAnimationStart(callback: () => void): T |
动画开始时触发 | 准备动画状态 |
| onAnimationUpdate | onAnimationUpdate(callback: (progress: number) => void): T |
动画更新时触发 | 实时更新UI |
| onAnimationEnd | onAnimationEnd(callback: () => void): T |
动画结束时触发 | 清理动画状态 |
八、数据绑定事件
8.1 状态变化
| 事件名称 | 方法签名 | 触发条件 | 用途示例 |
|---|---|---|---|
| @State | @State value: type |
状态值变化时 | 响应式UI更新 |
| @Link | @Link value: type |
链接状态变化时 | 双向数据绑定 |
| @Provide | @Provide value: type |
提供状态变化时 | 向下传递状态 |
| @Consume | @Consume value: type |
消费状态变化时 | 接收父组件状态 |
九、权限与资源事件
9.1 权限请求
| 事件名称 | 方法签名 | 触发条件 | 用途示例 |
|---|---|---|---|
| requestPermissionsFromUser | requestPermissionsFromUser(permissions: Array<string>, requestCode: number): Promise<Array<PermissionResult>> |
请求权限时 | 获取相机、位置权限 |
9.2 资源加载
| 事件名称 | 方法签名 | 触发条件 | 用途示例 |
|---|---|---|---|
| onResourceLoad | onResourceLoad(callback: () => void): T |
资源加载完成时 | 图片加载完成回调 |
| onResourceError | onResourceError(callback: (error: ResourceError) => void): T |
资源加载失败时 | 错误处理、重试机制 |
十、设备与系统事件
10.1 设备状态
| 事件名称 | 方法签名 | 触发条件 | 用途示例 |
|---|---|---|---|
| onOrientationChange | onOrientationChange(callback: (orientation: Orientation) => void): T |
屏幕方向变化时 | 横屏/竖屏适配 |
| onWindowStageShow | onWindowStageShow(callback: () => void): void |
窗口显示时 | 窗口显示初始化 |
| onWindowStageHide | onWindowStageHide(callback: () => void): void |
窗口隐藏时 | 窗口隐藏清理 |
10.2 系统事件
| 事件名称 | 方法签名 | 触发条件 | 用途示例 |
|---|---|---|---|
| onMemoryLevel | onMemoryLevel(callback: (level: number) => void): void |
内存级别变化时 | 内存优化 |
| onBatteryLevel | onBatteryLevel(callback: (level: number) => void): void |
电池电量变化时 | 省电模式切换 |
十一、输入事件
11.1 文本输入
| 事件名称 | 方法签名 | 触发条件 | 用途示例 |
|---|---|---|---|
| onInput | onInput(callback: (value: string) => void): T |
输入内容变化时 | 实时搜索、表单验证 |
| onConfirm | onConfirm(callback: (value: string) => void): T |
确认输入时 | 搜索提交、表单提交 |
11.2 选择器事件
| 事件名称 | 方法签名 | 触发条件 | 用途示例 |
|---|---|---|---|
| onSelect | onSelect(callback: (index: number, value: string) => void): T |
选项被选中时 | 下拉菜单选择 |
| onChange | onChange(callback: (value: string) => void): T |
值变化时 | 滑块、开关状态变化 |
十二、多媒体事件
12.1 音频事件
| 事件名称 | 方法签名 | 触发条件 | 用途示例 |
|---|---|---|---|
| onPlay | onPlay(callback: () => void): T |
音频播放时 | 播放状态更新 |
| onPause | onPause(callback: () => void): T |
音频暂停时 | 暂停状态更新 |
| onEnd | onEnd(callback: () => void): T |
音频播放结束时 | 播放下一首 |
| onError | onError(callback: (error: MediaError) => void): T |
音频播放错误时 | 错误提示 |
12.2 视频事件
| 事件名称 | 方法签名 | 触发条件 | 用途示例 |
|---|---|---|---|
| onStateChange | onStateChange(callback: (state: number) => void): T |
视频状态变化时 | 加载、播放、暂停状态切换 |
| onProgress | onProgress(callback: (progress: number) => void): T |
视频进度更新时 | 进度条更新 |
| onBufferStart | onBufferStart(callback: () => void): T |
视频缓冲开始时 | 显示加载提示 |
| onBufferEnd | onBufferEnd(callback: () => void): T |
视频缓冲结束时 | 隐藏加载提示 |
十三、网络事件
13.1 网络状态
| 事件名称 | 方法签名 | 触发条件 | 用途示例 |
|---|---|---|---|
| onNetworkStateChange | onNetworkStateChange(callback: (networkState: NetworkState) => void): void |
网络状态变化时 | 网络连接提示 |
13.2 HTTP请求
| 事件名称 | 方法签名 | 触发条件 | 用途示例 |
|---|---|---|---|
| onSuccess | onSuccess(callback: (data: string) => void): T |
请求成功时 | 处理响应数据 |
| onFail | onFail(callback: (data: string, code: number) => void): T |
请求失败时 | 错误处理 |
| onComplete | onComplete(callback: () => void): T |
请求完成时 | 清理状态 |
十四、传感器事件
14.1 加速度传感器
| 事件名称 | 方法签名 | 触发条件 | 用途示例 |
|---|---|---|---|
| onAccelerometerDataChange | onAccelerometerDataChange(callback: (data: AccelerometerData) => void): void |
加速度数据变化时 | 摇一摇功能 |
14.2 陀螺仪传感器
| 事件名称 | 方法签名 | 触发条件 | 用途示例 |
|---|---|---|---|
| onGyroscopeDataChange | onGyroscopeDataChange(callback: (data: GyroscopeData) => void): void |
陀螺仪数据变化时 | 3D视图控制 |
14.3 位置传感器
| 事件名称 | 方法签名 | 触发条件 | 用途示例 |
|---|---|---|---|
| onLocationChange | onLocationChange(callback: (location: Location) => void): void |
位置变化时 | 地图定位、导航 |
十五、通知事件
15.1 系统通知
| 事件名称 | 方法签名 | 触发条件 | 用途示例 |
|---|---|---|---|
| onNotificationReceived | onNotificationReceived(callback: (notification: Notification) => void): void |
收到通知时 | 显示通知提示 |
| onNotificationClicked | onNotificationClicked(callback: (notification: Notification) => void): void |
通知被点击时 | 跳转到对应页面 |
15.2 自定义通知
| 事件名称 | 方法签名 | 触发条件 | 用途示例 |
|---|---|---|---|
| sendCustomEvent | sendCustomEvent(event: CustomEvent): void |
发送自定义事件时 | 组件间通信 |
| onCustomEvent | onCustomEvent(callback: (event: CustomEvent) => void): void |
接收自定义事件时 | 跨组件监听 |
更多推荐

所有评论(0)