文档帮助

术语、图标和标签

许多类在使用配置对象创建(实例化)类时使用快捷名称。快捷名称称为 alias(如果类扩展了 Ext.Component,则称为 xtype)。别名/xtype 列在适用类的类名旁边,以便快速参考。

访问级别

框架类或其成员可以指定为 privateprotected。否则,类/成员是 publicPublicprotectedprivate 是访问描述符,用于传达如何以及何时应使用类或类成员。

成员类型

成员语法

下面是一个示例类成员,我们可以剖析它以显示类成员的语法(在本例中是从 Ext.button.Button 类查看的 lookupComponent 方法)。

lookupComponent ( item ) : Ext.Component
protected

当原始配置对象添加到此容器时调用,无论是在 items 配置初始化期间,还是在添加新项目或 {@link #insert 插入} 时。

此方法将传递的对象转换为实例化的子组件。

当需要对子创建应用特殊处理时,可以在子类中重写此方法。

参数

item :  Object

正在添加的配置对象。

返回值
Ext.Component

要添加的组件。

让我们看一下成员行的每个部分

成员标志

API 文档使用许多标志来进一步传达类成员的功能和意图。标签可以用文本标签、缩写或图标表示。

类图标

- 表示一个框架类

- 一个单例框架类。*有关更多信息,请参阅单例标志

- 组件类型的框架类(Ext JS 框架中扩展 Ext.Component 的任何类)

- 表示类、成员或指南在当前查看的版本中是新的

成员图标

- 表示 config 类型的类成员

- 表示 property 类型的类成员

- 表示 method 类型的类成员

- 表示 event 类型的类成员

- 表示 theme variable 类型的类成员

- 表示 theme mixin 类型的类成员

- 表示类、成员或指南在当前查看的版本中是新的

类成员快速导航菜单

在 API 文档页面上,类名正下方是一行按钮,对应于当前类拥有的成员类型。每个按钮显示按类型划分的成员计数(此计数会随着过滤器的应用而更新)。单击按钮会将您导航到该成员部分。将鼠标悬停在成员类型按钮上将显示该类型的所有成员的弹出菜单,以便快速导航。

Getter 和 Setter 方法

与类配置选项相关的 getter 和 setter 方法将显示在方法部分以及 API 文档和成员类型菜单的配置部分中,就在它们使用的配置下方。getter 和 setter 方法文档将在配置行中找到,以便于参考。

历史记录栏

您的页面历史记录保存在本地存储中,并显示在顶部标题栏正下方(使用可用的实际空间)。默认情况下,显示的唯一搜索结果是与您当前查看的产品/版本匹配的页面。您可以通过单击历史记录栏右侧的 按钮并选择“全部”单选选项来展开显示的内容。这将显示所有产品/版本历史记录栏中的所有最近页面。

在历史记录配置菜单中,您还将看到最近访问页面的列表。结果按“当前产品/版本”和“全部”单选选项过滤。单击 按钮将清除历史记录栏以及本地存储中保存的历史记录。

如果在历史记录配置菜单中选择了“全部”,则将启用“在历史记录栏中显示产品详细信息”复选框选项。选中后,每个历史页面的产品/版本将与历史记录栏中的页面名称一起显示。将光标悬停在历史记录栏中的页面名称上也会将产品/版本显示为工具提示。

搜索和过滤器

可以使用页面顶部的搜索字段搜索 API 文档和指南。

在 API 文档页面上,还有一个过滤器输入字段,用于使用过滤器字符串过滤成员行。除了按字符串过滤外,您还可以按访问级别、继承和只读过滤类成员。这是使用页面顶部的复选框完成的。

API 类导航树底部的复选框过滤类列表以包含或排除私有类。

单击空的搜索字段将显示您最近 10 次搜索,以便快速导航。

API 文档类元数据

每个 API 文档页面(JavaScript 原始页面除外)都有一个关于该类的元数据菜单视图。此元数据视图将具有以下一项或多项

展开和折叠示例和类成员

可运行的示例 (Fiddles) 默认在页面上展开。您可以使用代码块左上角的箭头单独折叠和展开示例代码块。您还可以使用页面右上角的切换按钮切换所有示例的折叠状态。切换所有状态将在页面加载之间记住。

类成员默认在页面上折叠。您可以使用成员行左侧的箭头图标或全局使用右上角的展开/折叠所有切换按钮来展开和折叠成员。

桌面 -vs- 移动视图

在较窄的屏幕或浏览器上查看文档将导致针对较小外形尺寸优化的视图。桌面视图和“移动”视图之间的主要区别是

查看类源代码

可以通过单击 API 文档页面顶部的类名来查看类源代码。可以通过单击成员行右侧的“view source”链接来查看类成员的源代码。

Ext JS 7.8.0


顶部

使用事件

Ext JS 的组件和类在其生命周期的各个阶段触发各种事件。事件允许您的代码对应用程序周围的变化做出反应。它们是 Ext JS 中的一个关键概念。

什么是事件?

每当您的类发生有趣的事情时,都会触发事件。例如,当 Ext.Component 渲染到屏幕时,Ext JS 会在渲染完成后触发一个事件。我们可以通过配置一个简单的 listeners 对象来监听该事件

在本例中,当您单击 预览 按钮时,Panel 会渲染到屏幕,然后显示定义的警报消息。类触发的所有事件都列在该类的 API 页面中 - 例如,Ext.panel.Panel 当前有 45 个事件。

监听事件

虽然 Ext.Component#event-afterrender 在某些情况下很有用,但您可能会更频繁地使用其他事件。例如,Ext.button.Button 在单击时触发 click 事件

一个组件可以包含任意数量的事件监听器。在以下示例中,我们通过在 mouseover 监听器中调用 this.hide() 来隐藏按钮,从而使用户感到困惑。然后,我们在稍后一秒再次显示该按钮。当调用 this.hide() 时,按钮被隐藏,并触发 hide 事件。hide 事件触发我们的 hide 监听器,该监听器等待一秒钟并再次显示按钮

每次触发事件时都会调用事件监听器,因此您可以根据需要继续隐藏和显示按钮。

稍后添加监听器

在之前的示例中,我们在实例化类时将监听器传递给组件。但是,如果我们已经有一个实例,我们可以使用 on 函数添加监听器

您还可以通过使用 .on 方法来指定多个监听器,类似于使用监听器配置。以下内容回顾了之前的示例,该示例使用 mouseover 事件设置按钮的可见性

移除监听器

正如我们可以在任何时候添加监听器一样,我们也可以移除它们。这次我们使用 un 函数。要移除监听器,我们需要引用它的函数。在之前的示例中,我们将函数传递到监听器的对象或 on 调用中。这次,我们提前创建函数并将其链接到一个名为 doSomething 的变量中,该变量包含我们的自定义函数。由于我们最初将新的 doSomething 函数传递到我们的监听器对象中,因此代码开始时与以前相同。随着最终添加 Ext#method-defer 函数,在最初 3 秒内单击按钮会产生警报消息。但是,3 秒后,监听器被移除,因此什么也不会发生

作用域监听器选项

Scope 设置处理程序函数内部 this 的值。默认情况下,this 设置为触发事件的类的实例。这通常(但不总是)是您想要的功能。此功能允许我们调用 this.hide() 以隐藏本指南前面第二个示例中的按钮。在以下示例中,我们创建一个 Button 和一个 Panel。然后,我们监听 Button 的 click 事件,处理程序在 Panel 的作用域中运行。为了做到这一点,我们需要传入一个对象而不是处理程序函数。此对象包含函数和作用域

如果您的监听器没有相同的选项,或者如果您不喜欢简洁,您也可以使用更详细的声明。

当您运行此示例时,click 处理程序的 this 值是对 Panel 的引用。为了说明这一点,我们警告作用域组件的 xtype。当单击按钮时,我们应该看到 Panel xtype 被警告。

仅监听一次事件

您可能只想监听一次事件。事件本身可能会触发任意次数,但我们只想监听一次。以下代码说明了这种情况

使用缓冲区配置

对于短时间内多次触发的事件,我们可以减少我们的

监听器被调用的次数,方法是使用缓冲区配置。在这种情况下,我们按钮的 click 监听器每 2 秒仅调用一次,无论您单击多少次

触发自定义事件

触发您自己的事件是通过使用事件名称调用 fireEvent 来完成的。在以下示例中,我们触发一个名为 myEvent 的事件,该事件传递两个参数 - 按钮本身和一个介于 1 到 100 之间的随机数

我们再次使用 Ext.defer 来延迟触发自定义事件的函数,这次延迟 2 秒。当事件触发时,myEvent 监听器会拾取它并显示我们传入的参数。

监听 DOM 事件

并非每个 ExtJS 组件都会触发每个事件。但是,通过定位容器的元素,我们可以附加许多本机事件,组件随后可以监听这些事件。在本例中,我们定位 Ext.container.Container。容器没有 click 事件。让我们给它一个!

如果没有第二段代码,容器的 click 监听器将不会触发。由于我们已定位容器的元素并附加了 click 监听器,因此我们扩展了容器的事件功能。

事件规范化

事件规范化是允许 Ext JS 5+ 应用程序在触摸屏设备上运行的关键。这种规范化在幕后发生,并且是从标准鼠标事件到其等效的触摸和指针事件的简单转换。

指针事件是 w3c 标准,用于处理以屏幕上特定坐标集为目标的事件,而与输入设备(鼠标、触摸屏、手写笔等)无关

当您的代码请求鼠标事件的监听器时,框架会根据需要附加类似的触摸或指针事件。例如,如果应用程序尝试附加 mousedown 监听器

myElement.on('mousedown', someFunction);

在支持触摸事件的设备的情况下,事件系统将其转换为 touchstart

myElement.on('touchstart', someFunction);

或者,在支持指针事件的设备的情况下,转换为 pointerdown

myElement.on('pointerdown', someFunction);

此翻译已就位,以便您无需任何额外的编码即可实现平板电脑和触摸屏支持。可以使用 translate 事件选项禁用翻译

myElement.on({
    mousedown: someFunction,
    // only listen to mousedown.  Do not call the handler in response to touchstart or pointerdown.
    translate: false
});

更多事件

除了 DOM 事件和 Component 事件之外,Ext JS 还提供了一个强大的系统来识别有意义的手势,例如 pinchrotatedrag 等。有关这些事件的更多信息,请参阅 Gestures 指南。

Ext JS 7.8.0