首页
/ VKUI 7.2.0版本发布:全新组件与RTL支持全面升级

VKUI 7.2.0版本发布:全新组件与RTL支持全面升级

2025-07-05 14:30:37作者:咎竹峻Karen

项目简介

VKUI是VK公司(俄罗斯最大的社交网络平台)开发的一套React UI组件库,专为构建现代化的Web应用程序而设计。它提供了丰富的UI组件和工具,帮助开发者快速构建符合VK设计语言的用户界面。VKUI以其高性能、可访问性和对移动设备的友好支持而闻名,广泛应用于VK生态系统中的各种产品。

全新组件登场

CellButtonGroup组件

在7.2.0版本中,VKUI引入了一个实用的新组件——CellButtonGroup。这个组件专门用于将多个CellButton(单元格按钮)组合在一起,形成逻辑上的按钮组。这种设计模式在移动应用中非常常见,特别是在设置页面或需要呈现多个相关操作的场景中。

CellButtonGroup不仅提供了视觉上的分组效果,还确保了组内按钮之间的一致间距和样式协调。开发者现在可以轻松创建出符合VK设计规范的按钮组,而无需手动处理边距和边框等样式细节。

DirectionProvider组件

另一个重要的新增组件是DirectionProvider,它为应用程序提供了更灵活的文字方向控制。在全球化应用中,支持从右到左(RTL)的布局至关重要,特别是对于阿拉伯语、希伯来语等语言的用户。

DirectionProvider允许开发者在组件树的任何层级覆盖默认的文本方向设置,使得局部RTL支持成为可能。这意味着即使整个应用采用LTR(从左到右)布局,特定部分仍然可以独立设置为RTL模式,为多语言应用开发提供了更大的灵活性。

RTL支持全面增强

7.2.0版本在RTL(从右到左)支持方面做出了重大改进,涵盖了多个核心组件:

  • Avatar:修复了AvatarBadge在RTL模式下的显示问题
  • CardScroll:新增完整的RTL支持
  • Cell:优化了RTL布局下的显示效果
  • Gallery:实现了RTL兼容性
  • Pagination:修正了RTL模式下的分页控件布局
  • PanelHeaderButton:特别是PanelHeaderBack预设按钮,现在在RTL模式下显示正确
  • HorizontalScroll:新增RTL滚动支持
  • Search:全面支持RTL布局
  • SegmentedControl:改进了RTL模式下的分段控件行为
  • Snackbar:支持RTL消息显示
  • Slider:实现了RTL滑动方向
  • Switch:优化了RTL模式下的开关控件

这些改进使得VKUI在RTL语言环境下的表现更加自然和专业,为国际化应用开发提供了更好的基础。

组件功能增强

模态对话框改进

ModalCard和ModalPage组件都新增了outsideButtons属性,允许在紧凑模式下在关闭按钮后显示额外的操作按钮。这种设计模式在移动端非常实用,可以在不占用主要内容空间的情况下提供辅助功能。

同时,ModalCard还新增了restoreFocus属性,开发者现在可以控制模态关闭后是否恢复之前的焦点位置,这对于无障碍访问和用户体验都有重要意义。

搜索组件增强

Search组件新增了两个实用的测试属性:clearButtonTestId和findButtonTestId。这些属性为端到端测试提供了更可靠的定位方式,使得自动化测试更加稳定。

工具提示灵活性提升

Tooltip组件现在支持设置自定义的锚点元素,这意味着开发者可以更灵活地控制工具提示的显示位置和触发条件。此外,Tooltip现在也支持直接传递纯文本作为children,简化了简单提示的实现方式。

日期输入功能扩展

DateInput组件新增了多个实用功能:

  • renderCustomValue属性允许根据输入值显示自定义文本
  • defaultValue属性支持非受控组件模式
  • timezone属性支持指定时区显示

这些改进使得日期输入处理更加灵活,能够满足更复杂的业务场景需求。

滚动控制增强

新增的useScroll钩子提供了手动控制AppRoot中ScrollContext的能力,为开发者提供了更精细的滚动行为控制选项。

无障碍访问改进

多个组件在无障碍访问方面有所增强:

  • ModalCardBase新增titleId属性,改善屏幕阅读器支持
  • 修复了disabled状态下链接的可访问性问题
  • Card和CardGrid组件改进了屏幕阅读器的识别

性能优化与问题修复

7.2.0版本也包含了一系列性能优化和问题修复:

  • 修复了Textarea在disabled状态下无法滚动的问题
  • 解决了Snackbar中长文本溢出的问题
  • 优化了CustomSelect在异步加载选项时的性能
  • 修复了DateInput和DateRangeInput中日历位置频繁变化的问题
  • 改进了Avatar.Overlay在初始渲染时的性能
  • 优化了AppRoot中的滚动锁定机制,现在作用于html元素

开发者体验提升

本次更新还包括多项改善开发者体验的改进:

  • 新增stylelint-config-recess-order插件,统一样式排序规范
  • 导出useFocusVisible钩子,方便自定义焦点样式
  • 改进Flex组件的gap继承行为
  • 优化ContentCard的图片显示控制
  • 完善了TypeScript类型定义,如导出AlertActionProps类型

文档与示例增强

VKUI的文档系统也获得了显著改进:

  • Storybook新增多个实用插件,包括控制台日志、源代码链接、设计稿查看等功能
  • 新增"Components Overview"和"Icons Overview"概览页面
  • 更新了多个组件的示例,特别是改进无障碍访问的示例
  • 修正了文档中的描述错误和拼写问题

总结

VKUI 7.2.0版本带来了多项重要更新,从全新的组件到全面的RTL支持,从功能增强到性能优化,都体现了VK团队对产品质量和开发者体验的持续关注。这些改进使得VKUI在现代Web应用开发中更具竞争力,特别是在需要国际化支持和无障碍访问的场景下。

对于正在使用或考虑使用VKUI的开发者来说,7.2.0版本无疑提供了更强大、更灵活的工具集,能够帮助构建更专业、更易用的用户界面。

登录后查看全文
热门项目推荐

项目优选

收起
docsdocs
OpenHarmony documentation | OpenHarmony开发者文档
Dockerfile
143
1.91 K
kernelkernel
deepin linux kernel
C
22
6
nop-entropynop-entropy
Nop Platform 2.0是基于可逆计算理论实现的采用面向语言编程范式的新一代低代码开发平台,包含基于全新原理从零开始研发的GraphQL引擎、ORM引擎、工作流引擎、报表引擎、规则引擎、批处理引引擎等完整设计。nop-entropy是它的后端部分,采用java语言实现,可选择集成Spring框架或者Quarkus框架。中小企业可以免费商用
Java
8
0
ohos_react_nativeohos_react_native
React Native鸿蒙化仓库
C++
192
273
RuoYi-Vue3RuoYi-Vue3
🎉 (RuoYi)官方仓库 基于SpringBoot,Spring Security,JWT,Vue3 & Vite、Element Plus 的前后端分离权限管理系统
Vue
927
551
openHiTLSopenHiTLS
旨在打造算法先进、性能卓越、高效敏捷、安全可靠的密码套件,通过轻量级、可剪裁的软件技术架构满足各行业不同场景的多样化要求,让密码技术应用更简单,同时探索后量子等先进算法创新实践,构建密码前沿技术底座!
C
421
392
openGauss-serveropenGauss-server
openGauss kernel ~ openGauss is an open source relational database management system
C++
145
189
金融AI编程实战金融AI编程实战
为非计算机科班出身 (例如财经类高校金融学院) 同学量身定制,新手友好,让学生以亲身实践开源开发的方式,学会使用计算机自动化自己的科研/创新工作。案例以量化投资为主线,涉及 Bash、Python、SQL、BI、AI 等全技术栈,培养面向未来的数智化人才 (如数据工程师、数据分析师、数据科学家、数据决策者、量化投资人)。
Jupyter Notebook
75
64
Cangjie-ExamplesCangjie-Examples
本仓将收集和展示高质量的仓颉示例代码,欢迎大家投稿,让全世界看到您的妙趣设计,也让更多人通过您的编码理解和喜爱仓颉语言。
Cangjie
344
1.3 K
easy-eseasy-es
Elasticsearch 国内Top1 elasticsearch搜索引擎框架es ORM框架,索引全自动智能托管,如丝般顺滑,与Mybatis-plus一致的API,屏蔽语言差异,开发者只需要会MySQL语法即可完成对Es的相关操作,零额外学习成本.底层采用RestHighLevelClient,兼具低码,易用,易拓展等特性,支持es独有的高亮,权重,分词,Geo,嵌套,父子类型等功能...
Java
36
8