不破不立 —— 挥别 less-loader,Ant Design 5.0 Alpha 发布

简介: 不破不立 —— 挥别 less-loader,Ant Design 5.0 Alpha 发布

🙋🏻‍♀️ 编者按:本文作者是 Ant Design Team,介绍了 Ant Design 5.0 Alpha 的新特性、重要更新以及接下来的计划,欢迎查阅~

关注我们的同学可以知道在今年(2022)年初的时候我们发布了一篇《Plan about Ant Design V5》[1],来介绍我们将要启动的 5.0 计划。社区在经历 8 个月的研发、发布 30 个 experimental 版本验证后,新的技术架构已经稳定,终于发布了 v5 alpha 版本!欢迎大家尝试,并提供宝贵的意见。

在正式版发布之前,我们还有更多事情要做。但是如果你已经迫不及待尝鲜,可以访问我们的 5.0 官网 [2](迁移参考此处 [3] )。

  新特性

新的设计

5.0 带来了全新的设计理念,围绕用户目标,根据「更聚焦」、「去干扰」、「轻松感」三大原则,对 Ant Design 设计系统在视觉上进行重塑,助力用户在虚拟办公空间更加「快乐工作」。


新设计

针对这些原则,我们在以下方面作出了优化,包括但不限于:

  • 增加梯度圆角并增加了基础圆角的大小,整体风格更轻松;
  • 减少线条使用,以获得更高的空间使用率和更简洁的使用体验;
  • 提高了交互动画速度,交互体验更加流畅;
  • 补充了统一的聚焦样式,仅在使用键盘聚焦时出现,无障碍能力(Accessibility)进一步提升。

新的动态主题方案

在 4.x 版本中,受制于 less 的样式与主题方案,我们一直摆脱不了两个问题的困扰:如何动态更换主题以及如何混合使用主题。经过一段时间的探索,在 5.0 版本中,我们放弃了跟随 antd 已久的 less 方案,转而拥抱 CSS-in-JS。CSS-in-JS 通过运行时的样式计算能力完美地解决了上述两个问题,并且为我们带来了更多的提升:

  • 更小的 BundleSize;
  • 不依赖任何插件的样式按需引入能力。

有了 CSS-in-JS 的技术加持,我们推出了全新的定制主题方案。在 5.0 版本中,Design Token 将是主题的基本组成部分,所有组件都会消费他们构筑样式。同时,我们依赖 Design Token 建立了样式的缓存,即认为在同样的 antd 版本下同样的 Design Token 所对应的组件样式是等同的,因此避免了重复生成样式进行对比的操作,避免了性能损耗。

基于 Design Token 和 CSS-in-JS ,我们制定了更加灵活的定制主题方案。通过 5.0 的定制主题,你可以做到的包括但不限于:

  1. 全局主题定制;
  2. 局部主题(嵌套主题/多主题并行);
  3. 组件主题定制;
  4. 在 Sketch 中直接使用配置过主题的设计稿。

想要了解更多请查看定制主题 [4] 文档。

新增组件

5.0 版本中计划将会有一些新的组件供用户选择!他们分别是:

  • Tour 漫游式引导
  • QrCode 二维码
  • WaterMark 水印
  • FloatButton 悬浮按钮

目前已有 FloatButton 悬浮按钮 [5] 准备就绪,欢迎试用。

  其他重要更新

更多变化请查看迁移文档[6]

浏览器兼容性调整

在今年 6 月,IE 浏览器正式停止了服务,也因此 Ant Design 5.0 版本将不再支持 IE 浏览器。放弃兼容一些低版本的浏览器之后我们可以使用更多 w3c 通过的新特性来丰富我们的组件库。

弹窗组件 API 统一

在 4.x 及更早的版本中,具有弹窗的组件受控显示的 API 一直分裂为两派,以 Select 为首的 open,以及以 Tooltip 为首的 visible。为了减少今后编码及使用中的不一致性,并降低记忆成本,我们在 5.0 版本中决定在相关组件中将 visible这个属性废弃。我们经过多方面的考虑选择了open 这个属性,比如原生 HTML 中 dialog 标签就具有 open 这个属性而不是 visible。您仍可以在 5.0 使用 visible,但是我们将在控制台中发出废弃警告,并在下一个 major (6.0) 版本中移除这个属性。

同样地,弹窗的 className 也一直分裂为 popupClassNamedropdownClassName 两个属性,我们也将在 5.0 中统一为 popupClassName

废弃结构语法糖

在 4.x 版本及更早的版本,我们提供了诸如 Menu.Item 等的 JSX 语法糖来编写代码,但这带来了额外的维护成本和糟糕的性能。因此,在 5.0 版本后,我们更加推荐数据驱动的组件使用方法,即通过 items 属性传入对象来替代结构语法糖,这将会有更好的性能和更方便的数据组织方式,并提前为将来的优化做好准备。

废弃静态方法

在 Message 等组件中,我们提供了诸如 message.error 等静态方法来使用该组件。但在 React 18 版本之后,不处于 React 生命周期内的静态方法会出现各种各样不适配的问题。在 5.0 版本中,我们更加推荐使用这些组件的 hooks 版本,这更符合 React 的生命周期。同时也推荐在应用层面封装自己的 hooks 来获得更好地使用体验。

  接下来的计划

在发布正式版之前,我们仍有大量的工作正在进行中,其中包括:

  • 提供从 V4 迁移至 V5 的 codemod 工具;
  • 提供更加完备的主题编辑器;
  • 翻新我们的官网,提供更多实用功能,比如组件支持复制粘贴到 Sketch;
  • 更多的新组件。

请继续期待 Ant Design 5.0 带来的全新体验!

  写在最后

Ant Design 5.0 历经 8 个月的开发时间,期间不少社区同学参与并贡献了代码,在此我们表示衷心的感谢,也感谢大家对于 Ant Design 的热情与认可。最后再次欢迎大家尝鲜我们的 5.0 alpha 版本,如果您遇到问题,也欢迎在我们的 issue 板块中提出。同时也欢迎更多的社区同学共建 Ant Design,Ant Design loves you ❤️ !


🔗 相关链接

[1] https://github.com/ant-design/ant-design/issues/33862

[2] https://next.ant.design/index-cn

[3] https://next.ant.design/docs/react/migration-v5-cn

[4] https://next.ant.design/docs/react/customize-theme-v5-cn

[5] https://next.ant.design/components/float-button-cn/

[6] https://next.ant.design/docs/react/migration-v5-cn


相关文章
|
人工智能 JSON 自然语言处理
我终于成为了全栈开发,各种AI工具加持的全过程记录
本文从一个需求出发,全程记录如何进行全栈开发。
2970 51
我终于成为了全栈开发,各种AI工具加持的全过程记录
|
2月前
|
存储 监控 安全
第三方电商数据 API 数据来源深度解析:合规与稳定背后的核心逻辑
本简介介绍第三方电商数据API的三大合规来源:官方授权(直连平台原生数据)、生态伙伴共享(整合物流/支付/SaaS等垂直数据)及公开数据合规采集,并强调严格清洗校验与场景化选型逻辑,助企业构建安全、精准、可用的数据分析底座。(239字)
|
12月前
|
数据采集 搜索推荐 应用服务中间件
如何通过 noindex 阻止网页被搜索引擎编入索引?
在一些网站中,通过`robots.txt`可以控制哪些站点资源或目录能被搜索引擎索引,但是随着站点页面增加,之前允许的索引页面常常不希望被索引,如果直接修改 `robots.txt`,影响会比较大,所以页面级的控制就很有必要。
318 0
如何通过 noindex 阻止网页被搜索引擎编入索引?
|
UED 索引
震惊!大文件上传也能如此丝滑?揭秘断点续传黑科技,让你的文件传输快如闪电,再也不用担心中断烦恼!
【8月更文挑战第4天】互联网的发展使大文件上传成为应用常见需求,但易受网络等因素影响中断。断点续传技术将文件分块,每块独立上传,若中断可续传未完成部分,提升效率和体验。实现包括文件分块、初始化上传、逐块上传与校验、服务器合并文件,及处理续传逻辑。通过客户端与服务器协作,优化上传流程,适应网络波动,确保数据完整性。随着技术进步,断点续传方案将更高效可靠。
1056 13
|
UED SEO
如何短时间内快速创建一个网站?
快速建站无需编程,选择PageAdmin CMS,模板多样,免费私有化部署,可绑定域名,测试发布,优化用户体验。
439 3
|
分布式计算 DataWorks 搜索推荐
DataWorks 产品评测与最佳实践探索!
DataWorks 是阿里巴巴推出的一站式智能大数据开发治理平台,内置15年实践经验,集成多种大数据与AI服务。本文通过实际使用角度,探讨其优势、潜力及改进建议。评测涵盖用户画像分析、数据治理、功能表现等方面,适合数字化转型企业参考。
398 1
|
弹性计算 固态存储 数据可视化
阿里云服务器是什么?2023年阿里云服务器价格、产品优势、功能、应用场景介绍
阿里云服务器是什么?云服务器ECS(Elastic Compute Service)是阿里云提供的性能卓越、稳定可靠、弹性扩展的IaaS(Infrastructure as a Service)级别云计算服务。云服务器ECS免去了您采购IT硬件的前期准备,让您像使用水、电、天然气等公共资源一样便捷、高效地使用服务器,实现计算资源的即开即用和弹性伸缩。阿里云ECS持续提供创新型服务器,解决多种业务需求,助力您的业务发展。 为什么选择阿里云服务器。选择云服务器ECS,您可以轻松构建具有以下优势的计算资源: 无需自建机房,无需采购以及配置硬件设施。 分钟级交付,快速部署,缩短应用上线周期。
599 0
|
Shell Linux Docker
docker常用命令大全(基础、镜像、容器、数据卷)
这些命令仅仅是 Docker 命令行工具的冰山一角,但对于日常操作来说已经非常全面。通过熟练地使用这些基础命令,用户可以有效地管理 Docker 的镜像、容器、数据卷和网络。随着用户对 Docker 的深入使用,更高级的命令和选项将会变得必需,但上面列出的命令已经为用户提供了一个坚实的起点。对于初学者来说,理解和掌握这些常用命令是深入学习 Docker 的基础。
1302 5
docker常用命令大全(基础、镜像、容器、数据卷)
|
SQL 关系型数据库 MySQL
MySQL----配置双主双从
本文档详细介绍了如何在四台服务器上配置MySQL的双主双从架构。首先,通过关闭防火墙和SELinux确保网络通信畅通无阻。接着,设置各服务器的主机名和本地Host,确保名称解析正确。然后,通过YUM安装MySQL并修改初始密码。接下来,逐步配置四个节点(master01、master02、slave01、slave02),包括修改配置文件、创建用户和授权等步骤,实现主从复制。最后,通过SQL命令验证主从同步是否成功。