ExtReact 文档帮助

简介

ExtReact 产品的文档在某种程度上与其他 Sencha 产品的文档有所不同。以下章节描述了所有产品的文档,除非特别指出 ExtReact 独有。

术语、图标和标签

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

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

访问级别

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

成员类型

成员语法

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

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

当原始配置对象添加到此容器时调用,无论是在 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) 默认在页面上展开。您可以使用代码块左上角的箭头单独折叠和展开示例代码块。您还可以使用页面右上角的切换按钮切换所有示例的折叠状态。切换所有状态将在页面加载之间记住。

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

桌面 -vs- 移动视图

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

查看类源代码

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

ExtReact 7.5.0


顶部

主题

概述

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

使用 Themer

可以使用 Sencha Themer 创建 ExtReact 的自定义主题,而无需编写代码。本指南的其余部分面向那些手动创建主题(即不使用 Themer)的用户。

使用内置主题

ExtReact 包含几个内置主题

主题 描述
ext-modern-theme-material Modern 工具包的 Material 主题。
ext-modern-theme-ios Modern iOS 主题
ext-modern-theme-neptune Modern 无边框主题
ext-modern-theme-triton Modern 平面、无边框主题
ext-classic-theme-classic 经典蓝色 Ext JS 主题
ext-classic-theme-neptune 无边框主题
ext-classic-theme-neptune-touch 基于 Neptune 的 Touch 主题
ext-classic-theme-triton 平面、无边框主题
ext-classic-theme-crisp 简约主题
ext-classic-theme-crisp-touch 基于 Crisp 的 Touch 主题
ext-classic-theme-graphite 基于 Triton 的可访问主题

使用 ExtReact webpack 插件为您的应用程序设置主题

// example webpack.config.js

const ExtReactWebpackPlugin = require('@sencha/ext-react-webpack-plugin');

module.exports = {
  ...
  plugins: [
    new ExtReactWebpackPlugin({
      theme: 'theme-material' // this is the default
      port:port,
    })
  ]
  ...
}

创建自定义主题

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

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

npm install --save @sencha/ext-modern-theme-triton @sencha/ext-modern-theme-neptune @sencha/ext-modern-theme-ios
npx ext-react generate theme --name <theme-name> --baseTheme <theme-material|theme-neptune|theme-ios|theme-triton (optional, defaults to theme-material)>

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

例如,要创建一个名为“my-theme”的新主题,该主题扩展了 material 主题,您将运行

npx ext-react generate theme --name my-theme

通过更新您的 ExtReactWebpackPlugin 设置,将主题应用于您的应用程序

new ExtReactWebpackPlugin({
  theme: '<theme-name>' 
})

自定义您的主题

语法和目录结构

ExtReact 主题由使用 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/ 中定义的变量。文件路径对应于 ExtReact 命名空间,并且仅在应用程序中使用相应的类时才包含在构建中。每个组件的命名空间都可以在 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"/>

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

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

pink button

大模式

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

进一步阅读

Modern Toolkit 中的主题

ExtReact 7.5.0