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

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

2025-07-05 18:37:35作者:咎竹峻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版本无疑提供了更强大、更灵活的工具集,能够帮助构建更专业、更易用的用户界面。

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