SAP UI5 里的事件传播,不只是 DOM 冒泡

发布时间:2026/7/20 10:03:47
SAP UI5 里的事件传播,不只是 DOM 冒泡 在 SAP UI5 里讨论 event propagation,最容易踩到的坑,是把它简单理解成浏览器 DOM 事件从子节点冒泡到父节点。这个理解只抓住了一半。SAP UI5 确实运行在浏览器之上,鼠标点击、键盘输入、触摸手势这些原始事件,仍然受 DOM 事件模型影响。可 UI5 自己又在这层之上建立了一套更偏企业应用语义的事件体系,也就是sap.ui.base.EventProvider、sap.ui.base.Event、sap.ui.core.Control、sap.ui.core.UIArea共同参与的事件机制。真正写 SAP Fiori 应用时,我们接触到的press、change、selectionChange、itemPress、routeMatched、requestCompleted,多数不是浏览器原生事件,而是 UI5 控件或框架对象主动 fire 出来的语义事件。所以,SAP UI5 里有没有 event propagation,答案是有,但不能只按普通前端里 click bubbling 的方式理解。更准确的说法是,SAP UI5 里存在三种经常被混在一起的传播路径,一种是浏览器 DOM 事件传播,一种是 UI5EventProvider支持的控件事件 bubbling,一种是模型、上下文、消息、校验状态沿控件树或绑定关系产生的框架级传播。真正排查问题时,必须先判断当前事件属于哪一层,否则很容易在 controller 里写了