DevExtreme Angular UI控件更新:引入全新严格类型配置组件

DevExtreme拥有高性能的HTML5 / JavaScript小部件集合,使您可以利用现代Web开发堆栈(包括React,Angular,ASP.NET Core,jQuery,Knockout等)构建交互式的Web应用程序。从Angular和Reac,到ASP.NET Core或Vue,DevExtreme包含高性能和响应式UI小部件集合,可在传统Web和下一代移动应用程序中使用。 该套件附带功能齐全的数据网格、交互式图表小部件、数据编辑器等。

获取DevExtreme v25.1正式版下载

如果您之前使用过 DevExtreme 的 Angular 组件,可能会接触过带有 dxo- 和 dxi- 前缀的配置组件。这些辅助组件简化了控件配置过程,符合 Angular 架构原则,并提升可读性。它们在处理嵌套选项时尤其有用,例如在 dx-data-grid 中使用 dxo-pager 来配置分页选项。

TypeScript 复制代码
<dx-data-grid [dataSource]="dataSource">
<dxo-pager
[visible]="true"
[showPageSizeSelector]="true" >
</dxo-pager>
</ dx-data-grid>

它们也适用于配置集合项,比如在 dx-toolbar 中使用 dxi-item 声明工具栏项:

XML 复制代码
<dx-toolbar>
<dxi-item location="before" widget="dxButton" >
</dxi-item>
</dx-toolbar>

下面以 dxi-item 为例,详细讲述旧有配置组件的工作方式。这是一个"通用"组件,不仅仅用于 dx-toolbar,还广泛出现在 Form 和 List 等多个 DevExtreme 组件中。

虽然这提供了统一性(即同一组件可复用),但缺点也很明显:根据父组件的不同,Dxi-item需要完全不同的选项集,这使得精确的输入变得复杂。

下面的屏幕截图说明了IDE如何在两个不同的上下文中为dxi-item显示相同的通用属性列表。例如,form组项的预期属性与甘特图上下文菜单项中使用的属性有很大不同。

我们的核心目标之一是提供完整、健壮的 TypeScript 支持,确保所有DevExtreme组件都严格类型化,并遵循现代 TypeScript 规范。这能改善 IDE 自动补全、早期捕捉错误,并增强重构过程中的信心。

不过,要在现有 dxo- 和 dxi- 组件上强制实施严格类型是一项复杂的挑战。这可能影响大量项目,并在升级到DevExtreme的新版本后引发重大更改。而且,原有配置架构的通用性不利于类型精确化。

全新配置组件:有何变化,为什么重要

DevExtreme v24.2 中,官方引入了一套全新的配置组件------它们具备严格类型、可无缝集成到 Angular 应用中,显著提升开发体验。

每个 UI 组件现在都有其专属配置组件集,这标志着在可预测性和类型安全方面向前迈出了重要一步。以下是主要变化及其优势:

更清晰、更能感知上下文的配置组件

配置组件名现在包含了它们的父组件名,这提高了代码的可读性,避免命名冲突,让模板结构更易理解。

例如,以前的 dxi-item 现已改为:

  • dxi-toolbar-item(用于 dx-toolbar)
  • dxi-form-item(用于 dx-form)
  • dxi-context-menu-item(用于 dx-context-menu)

这种命名约定有助于IDE识别组件上下文,并为开发人员提供更清晰的结构视图,使复杂的配置更容易导航和维护。

严格类型与更佳开发体验

新的配置组件现在只包含与其特定父组件相关的属性,这消除了IDE建议一长串不相关选项的情况。例如,dxi-data-grid-column只显示适用于DataGrid列的属性。因此,IDE建议现在更加准确和有用:

大多数新的配置属性都是严格类型化的,未来也会继续完善,这意味着任何对组件API的误用都将在编译期间被捕获(早在它可能导致运行时问题之前)。

后续计划:全面采用新版配置组件

新版配置组件相较旧架构更稳健现代、抗错率更高,并更契合 TypeScript 类型系统。我们将分阶段将整个 DevExtreme Angular 生态切换至此新模型。为了确保用户的平稳和可预测的迁移,请考虑以下时间表/关键里程碑:

DevExtreme v25.1:

  • 所有示例和帮助文档将开始使用新模型;
  • 官方建议所有新的 Angular 应用从一开始就采用新版配置组件;
  • v25.1 引入的所有功能均需使用新的配置组件。

DevExtreme v25.2:

  • 使用旧配置组件将触发弃用警告;
  • 旧系统不再接收新功能,在25.2和以后的版本中引入的任何新功能都需要使用新的配置组件;
  • 官方会提供文档、迁移指南和辅助工具,帮助平滑过渡。

DevExtreme v26.1:

官方将继续支持这些用户迁移到我们的新配置组件,目标是确保用户都拥有顺利完成过渡所需的资源和指导。

DevExtreme v26.2:

所有旧配置组件将从代码库中移除。

官方目标是让过渡过程清晰、可控、安全,严格的类型支持不仅是趋势,更是可扩展、可预测、安全开发的核心。


更多DevExpress线上公开课、中文教程资讯请上中文网获取

相关推荐
随笔记7 分钟前
使用vite新搭建react项目,都需要配置什么?
前端·react.js·vite
JiangJiang10 分钟前
🩸 一次失败的降级迁移尝试 **从 Vite + React 19 到 CRA + React 17 的 IE 兼容血泪史**
前端
moyu8413 分钟前
静态声明与动态拦截:从Object.defineProperty到Proxy
前端
kuxku27 分钟前
下一代前端工具链浅析
前端·架构
清风不问烟雨z29 分钟前
不仅仅是 Mock 服务:mock-h3,让前端也能优雅拥有后端能力
前端·javascript·vite
跟橙姐学代码29 分钟前
写 Python 函数别再死抠参数了,这招让代码瞬间灵活
前端·python
前端老鹰30 分钟前
CSS backdrop-filter:给元素背景添加模糊与色调的高级滤镜
前端·css·html
一枚前端小能手34 分钟前
⚡ Node.js服务器慢得像蜗牛,性能优化实战分享
前端·node.js·dnodejs
Lsx_1 小时前
TypeScript 是怎么去查找类型定义的?
前端·javascript·typescript
xianxin_1 小时前
CSS Dimension(尺寸)
前端