ExtReact 文档帮助

简介

ExtReact 产品的文档在一定程度上与其他 Sencha 产品的文档有所不同。以下部分描述了除 ExtReact 独有的部分之外的所有产品的文档。

术语、图标和标签

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

ExtReact 组件类在 API 类文档的顶部突出显示可配置名称,后面是完全限定的类名。

访问级别

框架类或其成员可以指定为 privateprotected。否则,类/成员为 publicPublicprotectedprivate 是访问描述符,用于传达类或类成员的使用方式和时间。

成员类型

成员语法

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

lookupComponent ( item ) : Ext.Component
protected

items 配置的初始化期间或添加新项目时,将原始配置对象添加到此容器时调用 added), or {@link #insert inserted.

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

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

参数

item :  Object

正在添加的配置对象。

返回值
Ext.Component

要添加的组件。

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

成员标志

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

类图标

- 表示框架类。

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

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

- 表示该类、成员或指南是当前查看版本中的新增内容。

成员图标

- 表示类型为config的类成员。

或者,对于 ExtReact 组件类,这表示类型为prop的成员。

- 表示类型为 property 的类成员

- 表示类型为 method 的类成员

- 表示类型为 event 的类成员

- 表示类型为 theme variable 的类成员

- 表示类型为 theme mixin 的类成员

- 表示该类、成员或指南是当前查看版本中的新增内容。

类成员快速导航菜单

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

Getter 和 Setter 方法

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

ExtReact 组件类不会将 Getter/Setter 方法提升到 prop 中。所有方法都将在 Methods 部分中描述。

历史记录栏

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

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

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

搜索和过滤器

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

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

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

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

API 文档类元数据

每个 API 文档页面(除了 Javascript 原语页面)都有一个与该类相关的元数据的菜单视图。此元数据视图将包含以下一项或多项

展开和折叠示例和类成员

默认情况下,可运行示例(Fiddle)在页面上展开。您可以使用代码块左上角的箭头,单独折叠和展开示例代码块。您也可以使用页面右上角的切换按钮,切换所有示例的折叠状态。切换所有状态将在页面加载之间保留。

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

桌面 -vs- 移动视图

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

查看类源代码

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

ExtAngular 7.5.0


顶部

主题

本指南介绍如何使用 Sencha Themer 对应用程序组件进行主题化。

概述

ExtAngular 包含一个主题化 API,允许您配置组件的外观。本指南解释了 ExtAngular 主题化 API 的基础知识,并指导您完成创建自定义主题的过程。

使用 Themer

ExtAngular 的自定义主题无需编写代码即可使用 Sencha Themer 创建。本指南的其余部分针对那些手动创建主题的人,即不使用 Themer。

使用内置主题

ExtAngular 包含几个内置主题

主题 描述
ext-modern-theme-material Modern 工具包的 Material 主题。
ext-modern-theme-ios Modern iOS 主题
ext-modern-theme-neptune Modern 无边框主题
ext-modern-theme-triton Modern 平坦、无边框主题

使用 ExtAngular webpack 插件设置应用程序的主题

// example webpack.config.js

const ExtWebpackPlugin = require('@sencha/ext-angular-webpack-plugin');

module.exports = {
  ...
  plugins: [
    new ExtWebpackPlugin({
      framework: 'angular',
      port: port,
      emit: true,
      browser: browserprofile,
      genProdData,
      watch: watchprofile,
      profile: buildprofile, 
      environment: buildenvironment, 
      verbose: buildverbose,
      theme: 'theme-material', // this is the default
      packages: []
    })
  ]
  ...
}

创建自定义主题

内置主题可以扩展以创建自定义主题。安装 @sencha/ext-angular 包后,您可以通过运行以下命令创建自定义主题

npx ext-angular generate theme --name <theme-name> --baseTheme <theme-material|theme-ios|theme-neptune|theme-triton (optional, defaults to theme-material)>

这将在 ext-angular/packages/<theme-name> 中创建一个新的自定义主题。

例如,要创建一个名为“my-theme”的新主题,该主题扩展了 material 主题,您需要运行以下命令:

npx ext-angular generate theme --name my-theme

通过更新 ExtWebpackPlugin 设置将主题应用到您的应用程序

  new ExtWebpackPlugin({
    framework: 'angular',
    theme: 'my-theme',
    ... 
})

*注意:theme-triton、theme-neptune 和 theme-ios 是单独的 npm 包,默认情况下不包含在 ExtAngular 中。您可以通过运行以下命令安装它们:

npm install --save @sencha/ext-modern-theme-triton @sencha/ext-modern-theme-neptune @sencha/ext-modern-theme-ios

自定义您的主题

语法和目录结构

ExtAngular 主题由使用 Fashion 语法的文件组成,Fashion 是 Sencha 自身的 SASS 方言。文件使用 .scss 扩展名,并按以下目录结构组织:

/sass
  /etc
  /src
  /var

etc

etc 目录包含其他实用程序函数或 mixin。如果存在,all.scss 文件将自动包含在构建中。其他文件可以通过 @import 指令包含,或添加到主题的 package.json 中的 sencha/sass/etc 下。

src

src 目录包含可以使用 sass/var/ 中定义的变量的规则和 UI mixin 调用。文件路径对应于 ExtAngular 命名空间,并且仅在您的应用程序中使用相应的类时才包含在构建中。每个组件的命名空间可以在 API 文档 中找到。例如,要为 List 定义一个 ui,其完全限定名为 Ext.dataview.List,请创建:

/sass
  /src
    /Ext
      /dataview
        List.scss

除了根据完全限定名包含文件外,您还可以将单个文件添加到主题的 package.json 中的 sencha.sass.src 下,或使用 @import 指令。

var

var 目录包含全局变量。与 src 一样,文件路径对应于组件命名空间。除了根据完全限定名包含文件外,您还可以将单个文件添加到主题的 package.json 中的 sencha.sass.var 下,或使用 @import 指令。

设置全局变量

自定义主题的最佳方法是设置全局变量的值。每个组件都有自己的一组全局变量,这些变量会影响该组件所有实例的外观和感觉。例如,我们可以通过创建以下内容来更改 Panel 标题的字体系列:

/sass
  /var
    /Ext
      /Panel.scss

...并添加以下内容...

// Panel.scss
$panel-header-font-family: 'Comic Sans';

除了为每个组件提供的变量外,还有一些变量会影响所有组件。这些变量在 API 文档的 Global_CSS 中列出。

例如,要为主题设置一个新的 $base-color,请创建:

/sass
  /var
    /Ext
      /Component.scss

...并添加以下内容...

// Component.scss
$base-color: #025B80;

一些开发人员可能更喜欢将所有全局变量放在一个文件中。这可以通过简单地将它们全部放在 var/Ext/Component.scss 中,或者通过创建您选择的文件并将其添加到主题的 package.json 中的 sencha.sass.var 中来实现。

添加 UI

每个组件都可以使用 ui prop 配置,该 prop 接受一个或多个用于为组件设置样式的 ui 的名称。UI 本质上是一组使用主题 API 提供的 mixin 创建的 css 类。UI 在主题的 sass/src 目录中定义。例如,如果我们想创建一个看起来像这样的按钮:

pink button

我们可以通过创建以下内容来实现:

/sass
  /src
    /Ext
      /Button.scss

...并添加以下内容...

// Button.scss
@include button-ui(
  $ui: 'pink',
  $background-color: #E91E63,
  $color: white
)

然后,我们将“pink” ui 应用于按钮,如下所示:

<button ui="pink" text="Click Me"></button>

组件可以使用多个 UI 配置。例如,我们可以添加内置的 roundraised ui,使我们的按钮圆形且凸起:

<button ui="pink round raised" text="Click Me"></button>

pink button

大模式

许多变量和 ui mixin 参数都有一个相应的变量或参数,后缀为 -big。当 x-big css 类应用于 html body 元素时,-big 变量生效。当您的应用程序在移动设备(平板电脑或手机)上查看时,会自动发生这种情况。没有 -big 后缀的变量在应用程序在桌面上的查看时生效。

进一步阅读

现代工具包中的主题

ExtAngular 7.5.0