| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
| 24 天前 | ||
| 24 天前 | ||
| 24 天前 | ||
| 24 天前 | ||
| 24 天前 | ||
| 24 天前 | ||
| 24 天前 | ||
| 24 天前 | ||
| 24 天前 | ||
| 24 天前 |
addMonitor/clearMonitor接口:动态添加/取消监听
介绍
本工程帮助开发者更好地理解addMonitor/clearMonitor接口的使用场景。该工程中展示的代码详细描述可查如下链接:
addMonitor/clearMonitor接口:动态添加/取消监听
效果预览
| 首页 |
|---|
![]() |
使用说明
执行测试用例会先打开相应界面,然后点击按钮或图标,演示接口的使用效果。
工程目录
entry/src/
├── main
│ ├── ets
│ │ ├── entryability
│ │ ├── entrybackupability
│ │ ├── pages
│ │ │ ├── AddMonitorArray.ets
│ │ │ ├── AddMonitorDuplicateFunc.ets
│ │ │ ├── AddMonitorIsSynchronous.ets
│ │ │ ├── AddMonitorSynchronous.ets
│ │ │ ├── ClearMonitorUsage.ets
│ │ │ ├── DynamicCancelMonitor.ets
│ │ │ ├── Index.ets
│ │ │ ├── MonitorAccessibleChange.ets
│ │ │ ├── MonitorArrayIndexLength.ets
│ │ │ ├── MonitorAsyncOnly.ets
│ │ │ ├── MonitorConstructorSync.ets
│ │ │ ├── MonitorIndependentPath.ets
│ │ │ ├── MonitorObservedV2ComponentV2.ets
│ │ │ ├── MonitorWildcardArray.ets
│ │ │ ├── MonitorWildcardDate.ets
│ │ │ ├── MonitorWildcardMap.ets
│ │ │ ├── MonitorWildcardObject.ets
│ │ │ └── MonitorWildcardSet.ets
│ └── resources
│ ├── ...
├─── ...
具体实现
-
addMonitor/clearMonitor可以传入数组一次性给多个状态变量添加或删除回调函数。
-
给同一path添加同名监听函数会失败,addMonitor设置isSynchronous仅第一次有效,更改会失败并打印错误日志。
-
clearMonitor可以删除指定监听函数,也可以删除当前path对应状态变量的所有监听回调函数。
-
addMonitor可以监听@ObservedV2类中@Trace修饰属性和@ComponentV2组件中状态变量的变化。
-
addMonitor可以监听数组类型状态变量的下标和length的变化。
-
addMonitor对不同path采取独立监听机制,仅监听真正发生变化的状态变量。
-
addMonitor会记录变量不可访问的状态,可以监听变量从可访问到不访问和从不可访问到可访问。
-
addMonitor可配置成同步监听函数,@Monitor仅支持异步监听。
-
addMonitor是同步构造的,可以监听构造函数中同步修改的状态变量的变化。
-
addMonitor/clearMonitor可以对不同的@ObservedV2/@ComponentV2实例动态添加/取消监听函数。
-
从API版本26.0.0开始,addMonitor可通过enableWildcard配置项支持使用通配符路径,监听对象属性以及Array、Date、Map、Set内置类型状态变量的API调用。
相关权限
不涉及。
依赖
不涉及。
约束与限制
1.本示例已适配API version 20及以上版本SDK,其中通配符相关样例需API version 26.0.0及以上。
下载
如需单独下载本工程,执行如下命令:
git init
git config core.sparsecheckout true
echo code/DocsSample/ArkUISample/AddMonitorClearMonitorSample/ > .git/info/sparse-checkout
git remote add origin https://gitcode.com/openharmony/applications_app_samples.git
git pull origin master
