当前位置: 首页 > Web前端 > JavaScript

SAPUI5sap.ui.core.Element概述

时间:2023-03-27 10:19:29 JavaScript

sap.ui.core.Element是所有SAPUI5页面Element(中文翻译为element)的基类。Element是UI5UI最基本的构建块。元素具有类似于ManagedObject的状态,它具有框架记住它的唯一ID。它可以有一个关联的DOM,但它不能呈现自己。只有SAPUI5控件可以呈现自身并负责呈现它们聚合为子元素的元素。如果某个元素已被渲染,则其关联的DOM将获得与该元素相同的ID,因此可以通过API检索。当元素的状态发生变化时,它会通知其父控件,后者通常会重新呈现。UI5框架已经为常见的浏览器事件注册了通用监听器,例如点击或按键按下。调用时,通用监听器(genericlisteners)首先使用jQuery.control方法来确定对应的目标元素。然后它会检查该元素是否具有该事件的事件处理程序方法。按照惯例,事件处理程序方法与事件同名,但以on为前缀:例如方法onclick是单击事件的处理程序,方法onkeydown是keydown事件的处理程序,等等。如果存在这样的方法,它将以原始事件作为唯一参数调用。如果该元素有一个注册委托列表,它们的处理函数将以相同的方式调用(如果存在)。元素和委托之间实现的处理程序集可能不同。并非元素实现的每个处理程序都必须由其委托实现,委托可以实现相应元素未实现的处理程序。可以在module:sap/ui/events/ControlEvents中找到以这种方式处理的浏览器事件列表。此外,框架使用相同的命名约定(模块:sap/ui/events/PseudoEvents)分派伪事件。最后要强调的一点是,一些框架事件也以这种方式调度,例如BeforeRendering、AfterRendering(仅适用于控件)和ThemeChanged。如果需要更多浏览器事件,该控件可以在其onAfterRendering处理程序中使用本机API在DOM上注册一个侦听器。如果需要,他们也可以对其聚合元素执行此操作。如果事件可能会被频繁触发(例如mousemove),最好只在需要时注册它们,然后再取消注册。无论如何,必须在onBeforeRendering侦听器中清除任何已注册的侦听器,并在退出挂钩中销毁之前清除,以防止内存泄漏。