WijmoJS 是一款基于 HTML5 的前端开发工具包,由 80 多种灵活、高效、跨平台、零依赖的 JavaScript UI 组件构成,如表格(Grid)、图表(Chart)、数据分析(Olap)、导航(Navigation)和金融图表等,完美兼容原生 JavaScript,以及 Angular、React、Vue、TypeScript、Knockout 和 Ionic 等框架,可助力企业以最快的速度开发并构建出一套成熟的 Web 应用程序。

WijmoJS正式版

React Redux是什么ijmoJS 增加的此项功能对于前端开发者来说意味着什么文将告诉你答案。

开发人员为何如此钟情于Redux/strong>

Redux是当今流行的应用程序架构,尤其是在React 区中。

它鼓励开发人员使用单向数据流,并使用Redux reducer在全局Redux Store中更改应用于单个位置的数据。可以肯定的是,该体系结构使应用程序更可靠,更易于维护 —— 这就是为什么许多开发团队选择将Redux作为应用程序基础架构的主要原因。

在使用Redux 时,需要注意:数据的所有更改都必须通过克隆Redux reducer中现有的数据来进行。

  • 如果需要将项目添加到数组中,则应使用添加的新项目创建此数组的副本
  • 如果需要更改项目属性,则应创建此项目的副本,其中包含此属性的新值
  • 您永远不应更改现有的数组和对象

Redux 与 DataGrid 组件之间的矛盾

DataGrid组件在设计之初,定位为直接更改绑定数据。这对于“常规”应用程序来说,可以满足需求,但是由于数据不变性的要求,它不能与Redux一起使用。

WijmoJS 的回答是:有!

WijmoJS 的 FlexGrid 组件与 Redux

WijmoJS的 FlexGrid表格组件,可将 格绑定到数据源,并允许您选择数据项的数量、数据显示模式、数据类型,以及是否使用数据映射和格式。即使有大量数据项,FlexGrid 格仍然可以保持快速流畅。

在应用于FlexGrid组件后,它将通过以下方式更改其行为:

下面,让我们看看它是如何工作的。

ImmutabilityProvider

在组件的render方法中,添加数据绑定最简单的JSX方法看起来像这样:

<FlexGrid itemsSource={this.props.items}></FlexGrid>
<FlexGrid>    <ImmutabilityProvider        itemsSource={this.props.items}        dataChanged={this.onGridDataChanged} /></FlexGrid>

请注意,现在在ImmutabilityProvider组件上指定了itemsSource属性,但未在FlexGrid上指定。

  • 现有项目的属性值已更改
  • 新项目已添加
  • 项目已删除

触发此事件后,尽管看起来数据已发生更改,但实际基础项数组保持不变(数组本身及其项的属性)。

我们使用此事件将相应的数据更改操作调度到Redux Store,以将用户所做的更改应用于全局应用程序状态。

事件处理程序如下:

onGridDataChanged(s: ImmutabilityProvider, e: DataChangeEventArgs) {    switch (e.action) {        case DataChangeAction.Add:            this.props.addItemAction(e.newItem);            break;        case DataChangeAction.Remove:            this.props.removeItemAction(e.newItem, e.itemIndex);            break;        case DataChangeAction.Change:            this.props.changeItemAction(e.newItem, e.itemIndex);            break;        default:            throw 'Unknown data action'    }}

根据在FlexGrid中发生的数据更改的类型(添加、删除或更改),事件处理程序将向Redux Store的reducer调度相应的操作,后者将使用包含分派的更改数组的克隆更新全局状态。

由于此数组直接绑定到ImmutabilityProvider.itemsSource属性,后者将检测到更改并让FlexGrid刷新其内容以反映存储中发生的更改。

尽管看似复杂,但即使在相当大的数据上,用户所做的更改也可立即生效。

WijmoJS版本亮点持续更新中,感兴趣的朋友可以继续关注 了解更多产品资讯~您可以下载WijmoJS最新版免费试用~


想要购买WijmoJS正版授权,或了解更多产品信息请点击【咨询在线客服】

标签:

声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2020年3月13日
下一篇 2020年3月13日

相关推荐

发表回复

登录后才能评论