许多类在使用配置对象创建(实例化)类时使用快捷名称。快捷名称称为别名
(如果该类扩展 Ext.Component,则称为xtype
)。别名/xtype 列在适用类的类名旁边,以便快速参考。
框架类或其成员可以指定为private
或protected
。否则,类/成员为public
。Public
、protected
和private
是访问描述符,用于传达如何以及何时使用类或类成员。
Public类和类成员可供任何其他类或应用程序代码使用,并且可以依赖于主要产品版本中稳定且持久。Public 类和成员可以通过子类安全地进行扩展。
Protected类成员是稳定的public
成员,旨在由拥有类或其子类使用。Protected 成员可以通过子类安全地进行扩展。
Private类和类成员由框架内部使用,不打算由应用程序开发人员使用。Private 类和成员可能会随时更改或从框架中省略,不应在应用程序逻辑中依赖它们。
static
标签。*请参阅下面的静态。下面是一个示例类成员,我们可以对其进行剖析以显示类成员的语法(在这种情况下,从 Ext.button.Button 类中查看的 lookupComponent 方法)。
让我们看看成员行的每个部分
lookupComponent
)( item )
)Ext.Component
)。对于除了 undefined
之外不返回任何内容的方法,可以省略此项,或者显示为多个可能的值,用正斜杠 /
分隔,表示返回的内容可能取决于方法调用的结果(即,如果 get 方法调用成功,则方法可能返回一个 Component,如果失败则返回 false
,将显示为 Ext.Component/Boolean
)。PROTECTED
- 请参阅下面的标志部分)Ext.container.Container
)。如果成员源自当前类,则源类将显示为蓝色链接;如果成员是从祖先类或混合类继承的,则显示为灰色。查看源
)item : Object
)列出。undefined
,则“返回”部分将注明返回的类或对象类型以及描述(本例中为 Ext.Component
)自 3.4.0 起可用
- 示例中未显示)默认为:false
)API 文档使用许多标志来进一步传达类成员的功能和意图。标签可以用文本标签、缩写或图标表示。
classInstance.method1().method2().etc();
false
,则标记为可预防的事件不会触发- 表示框架类
- 单例框架类。*有关更多信息,请参阅单例标志
- 组件类型的框架类(Ext JS 框架中任何扩展 Ext.Component 的类)
- 表示当前查看的版本中类、成员或指南是新的
- 表示类型为 config
的类成员
- 表示类型为 property
的类成员
- 表示类型为 method
的类成员
- 表示类型为 event
的类成员
- 表示类型为 theme variable
的类成员
- 表示类型为 theme mixin
的类成员
- 表示当前查看的版本中类、成员或指南是新的
在 API 文档页面上类名称正下方是与当前类拥有的成员类型相对应的按钮行。每个按钮按类型显示成员数(此计数会随着筛选条件的应用而更新)。单击按钮将导航到该成员部分。将鼠标悬停在成员类型按钮上将显示该类型的所有成员的弹出菜单,以便快速导航。
与类配置选项相关的 Getter 和 Setter 方法将显示在方法部分以及 API 文档和成员类型菜单中与它们一起使用的配置正下方的配置部分。Getter 和 Setter 方法文档将位于配置行中,以便于参考。
您的页面历史记录保存在本地存储中,并显示在顶部标题栏正下方(使用可用空间)。默认情况下,仅显示与您当前正在查看的产品/版本匹配的搜索结果。您可以通过单击历史记录栏右侧的 按钮并选择“全部”单选按钮来展开显示内容。这将在历史记录栏中显示所有产品/版本的所有最近页面。
在历史记录配置菜单中,您还将看到最近访问的页面列表。结果按“当前产品/版本”和“全部”单选按钮进行筛选。单击 按钮将清除历史记录栏以及保存在本地存储中的历史记录。
如果在历史记录配置菜单中选择了“全部”,则“在历史记录栏中显示产品详细信息”复选框选项将被启用。选中后,每个历史页面的产品/版本将与历史记录栏中的页面名称一起显示。将光标悬停在历史记录栏中的页面名称上也将以工具提示的形式显示产品/版本。
可以使用页面顶部的搜索字段搜索 API 文档和指南。
在 API 文档页面上,还有一个筛选器输入字段,使用筛选器字符串筛选成员行。除了按字符串筛选外,您还可以按访问级别、继承和只读筛选类成员。这是使用页面顶部的复选框完成的。
API 类导航树底部的复选框筛选类列表,以包括或排除私有类。
单击空搜索字段将显示您最近的 10 次搜索,以便快速导航。
每个 API 文档页面(Javascript 原语页面除外)都有一个与该类相关的元数据菜单视图。此元数据视图将具有以下一个或多个
Ext.button.Button
类具有备用类名称 Ext.Button
)。备用类名称通常用于向后兼容。默认情况下,可运行示例(小提琴)在页面上展开。您可以使用代码块左上角的箭头单独折叠和展开示例代码块。您还可以使用页面右上角的切换按钮切换所有示例的折叠状态。切换所有状态将在页面加载之间记住。
默认情况下,类成员在页面上折叠。您可以使用成员行左侧的箭头图标或全局使用右上角的展开/折叠所有切换按钮来展开和折叠成员。
在较窄的屏幕或浏览器上查看文档将导致针对较小尺寸优化视图。桌面视图和“移动”视图之间的主要区别是
可以通过单击 API 文档页面顶部的类名来查看类源。可以通过单击成员行右侧的“查看源”链接来查看类成员的源。
Sencha Cmd 6.5 具有多项主要和次要功能和增强功能,将帮助简化您的开发过程,充分利用最新的 Web 技术,并充分利用 Ext JS 6.5。
使用 Sencha Cmd 6.5,您可以使用箭头函数、let 关键字、对象解构以及 ES6 中几乎所有很酷的新功能来编写代码。Sencha Cmd 将编译您的代码以在任何地方运行。此转换称为“转换器”,在底层,Sencha Cmd 使用 Google 的 Closure Compiler 来转换您的代码。
Cmd 还利用 Closure 提供的所有 poly-fill,因此您还可以使用那些新奇的 Array 方法,而不用担心哪些浏览器支持它们。
在某些情况下,您不需要所有这些转换。也许您的目标是 Electron,或者您只支持具有所有这些功能的现代浏览器。您可以禁用转换器,并仍然针对您的原生 ES6 代码使用 Sencha Cmd 代码压缩器。只需调整 app.json 文件,然后告别转换器及其 polyfill
"output": {
"js": {
"version": "ES6"
}
}
Sencha Cmd 多年来一直支持包的概念,大规模应用程序通常利用包来封装类、样式和资源。然后,Sencha Cmd 将所有这些部分构建到您的应用程序中。现在,您可以以一种全新的方式使用这些包 - 动态方式。
如果您今天使用包,您会看到它们在您的 app.json “requires”数组中
requires: [
'dashboard',
'settings',
'users'
]
要切换到动态加载,只需将其中一些或全部移到“uses”数组中,并向“requires”添加一个新包
requires: [
'package-loader'
],
uses: [
'dashboard',
'settings',
'users'
]
在进行这些更改后,当 Sencha Cmd 构建您的应用程序时,它将为应用程序和每个已使用的包生成单独的捆绑包。当您的应用程序加载时,它将仅包含其代码及其所需包的代码,而不包含已使用的包。相反,这些已使用包的 JavaScript、CSS 和资源将与图像或其他资产一样位于应用程序的构建文件夹中。
然后,Ext.Package.load()
方法可以轻松地在您准备就绪时加载包。包加载器处理包的 JavaScript 和 CSS 资产,以及递归加载它可能需要的任何包。
如果您使用 Ext JS 路由,则可以执行类似以下操作来加载包
routes: {
':type': {
before: 'loadPackage',
action: 'showView'
}
},
loadPackage: function (type, action) {
var view = this.getView(),
pkg = this.getPackageForType(type);
if (!pkg || Ext.Package.isLoaded(pkg)) {
action.resume();
}
else {
view.setMasked({
message: 'Loading Package...'
});
Ext.Package.load(pkg).then(function () {
view.setMasked(null);
action.resume();
});
}
},
使用动态包加载可以真正节省用户的加载时间。他们不再需要等待应用程序的每个字节加载,而实际上他们只需要大约 20%。它还可以节省开发人员的时间,因为 Sencha Cmd 不再需要加载其所有代码来进行“开发”构建或同时监视其所有代码。
有许多新的命令行开关用于“app build”和“app watch”,以便您可以控制要构建或监视哪些外部包(如果有)。这些开关允许您通过将构建限制为当前正在处理的包来缩短构建时间。
为了帮助您入门,我们编写了一个演示应用程序,该应用程序在一些实际场景中使用了一些包。查看GitHub 存储库。
渐进式 Web 应用程序 (PWA) 使用现代 Web 技术提供近乎原生应用程序的体验。使用 PWA,您可以显示一个横幅,邀请 Android 用户在其主屏幕上安装您的应用程序。通过服务工作线程及其缓存(目前在 Chrome 和 Firefox 中受支持)的神奇功能,您的应用程序甚至可以在离线时运行。
Sencha Cmd 通过提供预构建的服务工作线程(基于 Google 的https://github.com/GoogleChrome/sw-toolbox)简化了构建过程。服务工作线程可以在 app.json
中配置,并且其缓存清单可以通过 Sencha Cmd 使用源代码中的 @sw-cache 注释来扩充。这些注释告诉 Cmd 您需要缓存特定资源,还可以配置如何管理每个资产。
我们汇集了一个渐进式 Web 应用程序示例,向您展示其工作原理。查看 GitHub 存储库并按照自述文件中的说明进行操作即可开始。该GitHub 存储库包含 Ext JS 应用程序和基于 Node.js 的后端服务器。
使用 Sencha Cmd 6.5,生成的应用程序不再包含“sencha app build”命令使用的构建脚本。这些脚本不再放在本地 .sencha
文件夹中,而是从 Sencha Cmd 安装目录加载。
应用程序也不再生成“sass”目录。相反,您可以将 *.scss
文件放在与 JavaScript 文件相同的目录中。换句话说,对于 Foo
视图,您可能拥有所有这些文件
foo/
Foo.js
Foo.scss
FooController.js
FooModel.js
建议将通用或全局样式放在 app/Application.scss
或从那里导入的文件中。
为了简化新项目的设置,您可以利用新的“sencha app init”和“sencha app install”命令及其“工作区”对应项“sencha workspace init”和“sencha workspace install”,如果您有多个应用程序。
所有这些命令都接受您已提取 Ext JS 的路径。如果您将所有 Sencha SDK 下载并解压到一个文件夹中,则可以像这样简化这些命令
$ sencha config --prop sencha.sdk.path=~/sencha-sdks --save
在 Windows 中,路径中的“~”部分将被类似“C:\Users\Me\”的内容替换。
现在,“sencha-sdks”拥有您已下载和解压的所有 SDK zip,并且您已使用“sencha config --save”保存了该路径,则无需将 --frameworks 传递给任何 init 或 install 命令。
一些用户在升级到 Cmd 6.5.0 后可能难以构建其原生 Cordova 应用程序。如果您收到任何与 Cordova 平台配置相关的错误,请手动创建一个名为 cordova.local.properties
的文件(如果不存在)。然后将以下代码放在该文件中,然后重试构建
cordova.platforms=${app.cordova.config.platforms}
注意:cordova.local.properties
应放置在项目的根目录中。