ExtReact 文档帮助

简介

ExtReact 产品的文档与其他 Sencha 产品的文档有所不同。以下章节描述了除标明为 ExtReact 独有的所有产品的文档。

术语、图标和标签

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

ExtReact 组件类在 API 类文档的顶部显著列出了可配置的名称,后跟完全限定的类名。

访问级别

框架类或其成员可以指定为 private(私有的)或 protected(受保护的)。否则,类/成员是 public(公共的)。Publicprotectedprivate 是访问描述符,用于传达类或类成员应如何以及何时使用。

成员类型

成员语法

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

lookupComponent ( item ) : Ext.Component
受保护 (protected)

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

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

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

参数

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 原始类型页面除外)都有一个与该类相关的元数据菜单视图。此元数据视图将具有以下一项或多项

展开和折叠示例及类成员

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

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

桌面与移动视图

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

查看类源码

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

ExtAngular 7.5.0


顶部

主题

本指南介绍了如何使用 Sencha Themer 来主题化您的应用程序组件。

概述

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

使用 Themer

可以使用 Sencha Themer 创建 ExtAngular 的自定义主题,而无需编写代码。本指南的其余部分面向那些手动创建主题(即不使用 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 语法(Sencha 自己的 SASS 方言)的文件组成。文件使用 .scss 扩展名,并按以下目录结构组织

/sass
  /etc
  /src
  /var

etc

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

src

src 目录包含规则和 UI mixin 调用,可以使用在 sass/var/ 中定义的变量。文件路径对应于 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 标题的 font-family

/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(属性),该属性接受一个或多个用于样式化组件的 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 应用于 Buttons,如下所示

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

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

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

pink button

Big Mode(大模式)

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

进一步阅读

Modern 工具包中的主题

ExtAngular 7.5.0