提供3000多款全球软件/控件产品
针对软件研发的各个阶段提供专业培训与技术咨询
根据客户需求提供定制化的软件开发服务
全球知名设计软件,显著提升设计质量
打造以经营为中心,实现生产过程透明化管理
帮助企业合理产能分配,提高资源利用率
快速打造数字化生产线,实现全流程追溯
生产过程精准追溯,满足企业合规要求
以六西格玛为理论基础,实现产品质量全数字化管理
通过大屏电子看板,实现车间透明化管理
对设备进行全生命周期管理,提高设备综合利用率
实现设备数据的实时采集与监控
利用数字化技术提升油气勘探的效率和成功率
钻井计划优化、实时监控和风险评估
提供业务洞察与决策支持实现数据驱动决策
转帖|产品更新|编辑:莫成敏|2020-04-17 15:48:19.140|阅读 240 次
概述:近日,前端 UI 组件库 WijmoJS V2020.0 Update1 正式发布!该版本最大亮点是增加了“可在React Redux 应用程序中,编辑数据网格”。本文介绍了React Redux是什么?
# 慧都年终大促·界面/图表报表/文档/IDE等千款热门软控件火热促销中 >>
WijmoJS 是一款基于 HTML5 的前端开发工具包,由 80 多种灵活、高效、跨平台、零依赖的 JavaScript UI 组件构成,如表格(Grid)、图表(Chart)、数据分析(Olap)、导航(Navigation)和金融图表等,完美兼容原生 JavaScript,以及 Angular、React、Vue、TypeScript、Knockout 和 Ionic 等框架,可助力企业以最快的速度开发并构建出一套成熟的 Web 应用程序。
近日,前端 UI 组件库 WijmoJS V2020.0 Update1 正式发布!除了提供不断优化的数据引擎,实现大数据量高速渲染外,这一版本的最大亮点,就是增加了“可在React Redux 应用程序中,编辑数据网格”。
React Redux是什么?WijmoJS 增加的此项功能对于前端开发者来说意味着什么?本文将告诉你答案。
开发人员为何如此钟情于Redux?
Redux是当今流行的应用程序架构,尤其是在React社区中。
它鼓励开发人员使用单向数据流,并使用Redux reducer在全局Redux Store中更改应用于单个位置的数据。可以肯定的是,该体系结构使应用程序更可靠,更易于维护 —— 这就是为什么许多开发团队选择将Redux作为应用程序基础架构的主要原因。
在使用Redux 时,需要注意:数据的所有更改都必须通过克隆Redux reducer中现有的数据来进行。
因此,想实现类似 Excel 那样的数据编辑方式,在React Redux 应用程序中将变得不那么容易。
Redux 与 DataGrid 组件之间的矛盾
DataGrid组件,又称为数据网格组件,其主要功能是允许用户像在Microsoft Excel中一样编辑数据。
DataGrid组件在设计之初,定位为直接更改绑定数据。这对于“常规”应用程序来说,可以满足需求,但是由于数据不变性的要求,它不能与Redux一起使用。
假设此时,您想使用基于Redux的高级应用程序架构,又希望将可编辑的DataGrid作为应用程序UI的一部分。该怎么办?
有没有一种可能,将Redux 与DataGrid 可编辑组件结合使用?
WijmoJS 的回答是:有!
WijmoJS 的 FlexGrid 组件与 Redux
WijmoJS的 FlexGrid表格组件,可将网格绑定到数据源,并允许您选择数据项的数量、数据显示模式、数据类型,以及是否使用数据映射和格式。即使有大量数据项,FlexGrid 网格仍然可以保持快速流畅。
为了将Redux 与可编辑网格组件结合使用,WijmoJS引入了一个非常易用的扩展组件,称为ImmutabilityProvider。
在应用于FlexGrid组件后,它将通过以下方式更改其行为:
下面,让我们看看它是如何工作的。
ImmutabilityProvider
在组件的render方法中,添加数据绑定最简单的JSX方法看起来像这样:
<FlexGrid itemsSource={this.props.items}> </FlexGrid>
当用户通过DataGrid编辑数据时,DataGrid将更改绑定到其itemsSource属性的数据数组。要更改此行为并强制FlexGrid停止对基础数据的影响,我们将ImmutabilityProvider React组件嵌套在FlexGrid组件中,如下所示:
<FlexGrid> <ImmutabilityProvider itemsSource={this.props.items} dataChanged={this.onGridDataChanged} /> </FlexGrid>
请注意,现在在ImmutabilityProvider组件上指定了itemsSource属性,但未在FlexGrid上指定。
此外,我们还为dataChanged事件定义了一个处理程序,该处理程序通知我们有关由于用户编辑而在DataGrid中发生的三种可能的数据更改类型:
触发此事件后,尽管看起来数据已发生更改,但实际基础项数组保持不变(数组本身及其项的属性)。
我们使用此事件将相应的数据更改操作调度到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刷新其内容以反映存储中发生的更改。
尽管看似复杂,但即使在相当大的数据上,用户所做的更改也可立即生效。
通过这种方法,在Redux应用程序中将datagrid用作数据编辑控件几乎与使用值输入控件(例如InputNumber、InputDate等)一样简单:将控件值属性更改为全局状态属性,并在控件的“值已更改”事件中调度具有新值的操作。
WijmoJS版本亮点持续更新中,感兴趣的朋友可以继续关注慧都网了解更多产品资讯~您可以下载WijmoJS最新版免费试用~
本站文章除注明转载外,均为本站原创或翻译。欢迎任何形式的转载,但请务必注明出处、不得修改原文相关链接,如果存在内容上的异议请邮件反馈至chenjj@cahobeh.cn
文章转载自:知名C/C++开发工具CLion全新发布v2024.3,新版本新语言引擎有显著改进等,欢迎下载新版体验!
强大的VS插件CodeRush已正式发布v24.2.3,新版本现在可以运行xUnit.Net v3测试等,欢迎下载最新版体验!
Spire.PDF 10.12.4 最新版本支持在进行多页打印时设置自动旋转方向。同时,一些已知问题也在本次更新中被成功修复,例如打印 PDF 文档时内容丢失的问题,欢迎下载体验~
日程安排控件dhtmlxScheduler v7.2全新发布,新版本增强并增加了编辑、修改等多个操作体验,欢迎下载最新版试用~
服务电话
重庆/ 023-68661681
华东/ 13452821722
华南/ 18100878085
华北/ 17347785263
客户支持
技术支持咨询服务
服务热线:400-700-1020
邮箱:sales@cahobeh.cn
关注我们
地址 : 重庆市九龙坡区火炬大道69号6幢