分享

SAP UI5 sap.ui.core.Element 的概要介绍

 汪子熙 2022-09-17 发布于四川

sap.ui.core.Element 是所有 SAP UI5 页面 Element(中文翻译为元素) 的基类。

Element 是 UI5 UI 最基本的构建块。 元素具有类似于 ManagedObject 的状态,它具有唯一的 ID,框架通过该 ID 记住它。 它可以有关联的 DOM,但它不能呈现自己。 只有 SAP UI5 Control 可以呈现自己,并负责呈现它们作为子元素聚合的元素。 如果一个元素已被渲染,它的相关 DOM 将获得与该元素相同的 ID,从而可以通过 API 检索。 当一个元素的状态改变时,它会通知它的父控件,它通常会重新渲染。

UI5 框架已经为常见的浏览器事件注册了通用侦听器,例如 click或 keydown.

调用时,通用侦听器(generic listeners)首先使用 jQuery.control 方法确定相应的目标元素。然后它检查元素是否具有事件的 event handler 方法。按照惯例,事件处理程序方法与事件同名,但以on为前缀:例如方法 onclick 是单击事件的处理程序,方法 onkeydown 是 keydown 事件的处理程序,依此类推。

如果有这样的方法,它将以原始事件作为唯一参数来调用。如果元素有一个已注册的委托列表,则它们的处理函数将在存在的情况下以相同的方式调用。

元素和委托之间实现的处理程序集可能不同。并非由元素实现的每个处理程序都必须由其委托实现,并且委托可以实现相应元素未实现的处理程序。

可以在 module:sap/ui/events/ControlEvents 中找到以这种方式处理的浏览器事件列表。此外,框架使用相同的命名约定调度伪事件(模块:sap/ui/events/PseudoEvents)。最后需要强调的一点是,一些框架事件也以这种方式分派,例如BeforeRendering、AfterRendering(仅用于控件)和 ThemeChanged。

如果需要更多浏览器事件,控件可以在其 onAfterRendering 处理程序中使用本机 API 在 DOM 上注册侦听器。如果需要,他们也可以对其聚合元素执行此操作。如果事件可能经常触发(例如 mousemove),最好只在需要时注册它们,然后再取消注册。无论如何,必须在 onBeforeRendering 侦听器中以及在退出钩子中销毁之前清理任何已注册的侦听器,以防止内存泄漏。

    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多