有无if条件语句时,web组件的onControllerAttached ,onLoadIntercept,onFoucus关键事件调用逻辑的顺序原理

使用web组件直接加载web页面时,通过if条件语句来控制web组件的显示与隐藏的时机。发现添加了if条件语句后,onControllerAttached ,onLoadIntercept,onFoucus这几个事件触发时机与预期理解不一致。

if条件的有无,导致了这三个事件触发顺序的错乱:onControllerAttached —》onLoadIntercept----》onFoucus

HarmonyOS
2024-05-07 22:25:57
浏览
收藏 0
回答 1
待解决
回答 1
按赞同
/
按时间
juliedan

直接创建和通过if else创建web的这两个生命周期顺序不同,onControllerAttached,onLoadIntercept这两个生命周期是web的。

如果是正常加载无if条件语句控制,onControllerAttached是先于onLoadIntercept调用的。但被if条件控制后,在if语句条件为false时,web组件会被销毁掉,在if条件切换到true时重新初始化web组件并绑定到初始化生成的webController上。此时的调用逻辑为:获取焦点-> 加载URL -> 重新生成web组件并绑定到最初的的webController上。如果伙伴的需要通过if条件语句来控制web组件的显示与隐藏的时机,建议使用visibility属性来进行控制是否隐藏。

分享
微博
QQ
微信
回复
2024-05-08 16:19:34
相关问题
Web组件onKeyEvent键盘事件不生效
407浏览 • 1回复 待解决
性能优化中组件复用原理是什么
290浏览 • 1回复 待解决
如何按照条件完成样式链式调用
336浏览 • 1回复 待解决
web组件registerJavaScriptProxy问题
162浏览 • 0回复 待解决
PolarDB 备份恢复原理是什么?
1271浏览 • 1回复 待解决
组件有没有支持事件穿透属性
138浏览 • 1回复 待解决
如何禁止Tabs系统切换逻辑
188浏览 • 0回复 待解决
关于逻辑删除问题有懂吗?
995浏览 • 1回复 待解决