evExtreme Complete Subscription是性能最优的 HTML5,CSS 和 JavaScript 移动、Web开发框架,可以直接在Visual Studio集成开发环境,构建iOS,Android,Tizen和Windows Phone 8应用程序。DevExtreme包含 PhoneJS 和 ChartJS 两个原生UI组件,并且提供源代码。目前,DevExtreme支持VS2010/2012/2013集成开发环境,兼容Android 4+、iOS5+、Windows 8、Window Phone 8、Tizen五大移动平台,是Visual Studio开发人员开发跨平台移动产品的首选工具。
具体更新内容如下:
此列表包含了v18.2.6中解决的问题:
DevExtreme Html Editor
- T702531 - dxHTMLEditor - Popups have incorrect size in IE11
- T701588 - dxHTMLEditor does not apply content settings in IE11
DevExtreme Tools
- T715323 - DevExtreme MVC - ConvertToDevExtremeCommandPackage throws the "Empty path name is not legal" error at the project startup
DevExtreme Data Grid
- T707313 - DataGrid - A validation error message is hidden behind a fixed column
- T707084 - DataGrid - The "Cannot read property 'split' of undefined" error occurs if one negative condition is specified in another condition
- T709033 - DataGrid - The grid's layout is broken after adding columns and group summaries dynamically
- T709106 - DataGrid - The last column has incorrect width when all columns have "auto" width and columnAutoWidth enabled after upgrade from 17.2 to 18.2
- T711198 - DataGrid - The repaintChangesOnly option renders each 6's row twice if rowRenderingMode is virtual
- T710380 - DataGrid - Two clicks are registered to activate save/cancel buttons if a column with the calculateCellValue field is used
- T708122 - DataGrid - Unselect all is not working with a custom data source
- T709020 - DataGrid doesn't display a record if it was added using the ArrayStore.push method
- T708711 - DataGrid expands group rows infinitely if grouping.autoExpandAll is false and the focused row feature is used
- T708353 - dxDataGrid - Tab key navigation does not work correctly when the showWhenGrouped option is set for a grouped column
- T708525 - dxDataGrid does not apply grouping when options are changed at runtime
DevExtreme Data Visualization
- T709427 - dxChart - Value axis zooming is broken if a data source is asynchronous
- T711457 - TreeMap - Performance is slow when updating labels of a large number of items
DevExtreme Demos
- T710022 - Scheduler - The appointmentTooltipTemplate function has three parameters in the Adaptive Appointments demo
DevExtreme Scheduler
- T705883 - Scheduler - Resource grouping cells are misaligned
- T644386 - Scheduler - The control layout is incorrect in the Edge browser if the crossScrollingEnabled option is used
- T697037 - Scheduler - The recurrence exception rule has an incorrect value if the Central Time (UTC -06.00) time zone is used
- T709736 - Scheduler - TimelineMonth view cells have double borders
DevExtreme UI Widgets
- T636219 - A button displays an ellipsis instead of an icon if the Font Awesome icon v.5 is used
- T694197 - Autocomplete - Grouped items cannot be shown
- T710547 - DateBox - The caret position should not change when adjusting a date with up/down arrows if useMaskBehavior is enabled
- T706292 - DateBox doesn't display an error frame if isValid and validationError are defined on the first load
- T685238 - DropDownBox does not change/adjust the popup height in accordance with content
- T673292 - dxList - Touch events do not work in IE and Edge with the Surface Pro 4 device
- T540032 - dxTabPanel aligns its tabs incorrectly under certain conditions when the panel resides in a detail row template of dxDataGrid
- T692239 - iOS does not show a date picker popup for the dxDateBox field
- T710656 - It is difficult to add a custom item to SelectBox
- T702864 - NumberBox - Format doesn't work if the "fa" culture is used
- T705263 - RangeSlider does not show a validation message
- T708199 - SelectBox edit mode - The entered value is lost if the initial value is empty
- T691665 - TagBox - Selection does not work with grouped DataSource
- T683047 - TagBox - The customQueryParams option is ignored when ODataStore is used
- T706179 - Touch Events don't work on desktop touch monitors in Chrome
DevExtreme Core
- T711875 - ResponsiveBox doesn't render HTML markup defined in the Item component
点击查看更多下载最新版试用!!!
者:王很水的博客
出处:https://wanghenshui.github.io/2021/03/11/arrow.html
月28日,广受开发者欢迎的前端开源项目Ant Design发布4.0正式版本。这是两年多以来的首次发布的里程碑版本。
大家可以在GitHub上关注Ant Design项目。
需要注意的是,v3 版本于 2019 年 12 月合入 3.x-stable 分支并进入维护状态。我们仍然会为 v3 版本进行半年的维护工作。维护截止日期为 2020 年 5 月。
设计规范升级
我们将基础圆角由 4px 调整为 2px。中后台产品以效率为第一优先级,圆角样式作为 UI 上的重要细节,更小的圆角从视觉上减少界面细节,提升了信息阅读效率。此外,我们对阴影进行了调整,使其更符合真实阴影,也同时将信息层级更好体现。
暗色主题
我们基于 v3 版本的色彩系统进行了升级,v4 提供了暗色主题。你可以在页面中点击切换主题功能查看暗色主题效果:
无边框组件
在业务中,我们发现有些场景会存在轻量级的选择组件。因而我们提供了一种新的无边框样式,让开发者可以更简单的嵌入这些组件而不用额外覆盖样式。
兼容性调整
Ant Design 3.0 为了兼容旧版 IE 做出了非常多的努力。然而根据业界统计,IE9/10 浏览器无论是在全球还是在国内份额都在随着 Windows 系统更新而在不断缩减。我们在 4.0 版本,停止对 IE 9/10 的支持工作(但仍然会支持 IE 11)。因而过去一些低性能的组件,也会随着新的 css 特性而获得性能提升。
与此同时,我们也将 v4 依赖的 React 最低版本要求升级到了 React 16.9。这意味着,v4 版本将会提供更多的 hooks 以简化你的代码。
此外,我们也将在 v3 版本警告的一些废弃 API 进行了移除。我们强烈建议你将当前项目升级到 v3 的最后一个版本,并根据 warning 信息将废弃 API 进行更新。
更小的尺寸
在 antd@3.9.0 中,我们引入了 svg 图标。使用了字符串命名的图标 API 无法做到按需加载,因而全量引入了 svg 图标文件,这大大增加了打包产物的尺寸。在 4.0 中,我们调整了图标的使用 API 从而支持 tree shaking,减少 antd 默认包体积约 150 KB(Gzipped)。
旧版 Icon 使用方式将被废弃,4.0 中会采用按需引入的方式。此外,我们也对相关依赖进行了精简,从而降低打包尺寸(Gzipped):
组件重做
Form 重做
Form 作为高频使用的组件,其 API 略显冗余。用户需要通过 Form.create 的 HOC 方式获得表单实例,而通过 form.getFieldDecorator 来对组件进行数据绑定。此外,每次数据变更便会进行整个表单的重新渲染,这使得在大数据表单中性能堪忧。在 v4 版本中,Form 将自带表单实例,你可以直接通过 Form.Item 的 name 属性进行数据绑定,从而简化你的代码。
我们发现大多数场景下,开发者其实只关注表单提交成功的值。因而我们提供了 onFinish ,其只会在表单验证通过后触发,而 validateFields 不在需要。
此外,Form 提供了 hooks 方法 Form.useForm 允许你对表单示例进行控制。
Table 重做
由于我们提升了兼容性的最低要求,我们改成使用 sticky 样式进行固定列的实现,因而大大减少了表单拥有固定列时的性能消耗。而对于不支持 sticky 的 IE 11,我们采取降级处理。
同时,我们提供了新的 summary API 用于实现总结行的效果:
对于 sorter 提供了多列排序的功能:
此外,我们调整了底层逻辑,现在 fixedColumn、expandable、scroll 可以混合使用。提供了 body API 用于自定义表格内容实现,你可以由此实现诸如虚拟滚动的效果。
全新 DatePicker、 TimePicker 与 Calendar
我们对日期组件进行了整体重写,因而将其与 moment 进行解耦。你可以通过我们提供的 generate 方法生成自定义日期库的 Picker 组件。为了保持兼容,默认的 Picker 组件仍然使用 moment 作为日期库。
此外,我们提供了全套的时间、日期、周、月、年选择器以及对应的范围选择器。你可以通过 picker 属性进行设置,不再需要通过 mode 的受控方法来实现特地的选择器。
在范围选择器上,我们也对交互进行了优化。你现在可以单独的选择开始或结束时间,并且完美优化了手动输入日期的体验。
Notification/Modal 提供 Hooks
在过去版本,你或许会遇到 Modal.xxx 和 Notification.xxx 调用方法无法获得 Context 的问题。这是由于我们对于这些语法糖会额外通过 ReactDOM.render 创建一个 React 实例,这也导致了 context 丢失的问题。在新版中,我们提供了 hooks 方法,让你可以将节点注入到需要获得 context 的地方。
虚拟滚动
v4 中,我们将 Tree、TreeSelect、Select 进行了改造,其默认使用虚拟滚动技术进行性能优化以承载大数据量的选项渲染。
Living demo:点击“了解更多”
此外,也对键盘交互以及无障碍进行了优化。
更多新功能/特性/优化部分
- ConfigProvider 提供 direction 配置以支持 rtl 语言国际化。
- Form 与 ConfigProvider 支持 size 设置包含组件尺寸。
- Typography 增加 suffix 属性。
- Progress 增加 steps 子组件。
- TextArea 支持 onResize。
- Grid 使用 flex 布局。
- ......
如何升级
为了尽可能简化升级,我们保持了最大兼容。但是仍然有一部分 breaking change 需要注意。你可以首先尝试使用我们提供的 codemod 工具进行迁移,对部分无法迁移的内容进行手工迁移。升级请参考官方文档。
以上
Ant Design 4.0 的诞生离不开社区志愿者的贡献与支持,感谢 @saeedrahimi 实现了 rtl 的国际化功能,@shaodahong 对于兼容包的贡献,以及每个参与帮助开发的人。是你们为开源的贡献让 Ant Design 变得更加美好!