VKUI 7.2.0版本发布:全新组件与RTL支持全面升级
项目简介
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版本无疑提供了更强大、更灵活的工具集,能够帮助构建更专业、更易用的用户界面。
atomcodeClaude Code 的开源替代方案。连接任意大模型,编辑代码,运行命令,自动验证 — 全自动执行。用 Rust 构建,极致性能。 | An open-source alternative to Claude Code. Connect any LLM, edit code, run commands, and verify changes — autonomously. Built in Rust for speed. Get StartedRust099- DDeepSeek-V4-ProDeepSeek-V4-Pro(总参数 1.6 万亿,激活 49B)面向复杂推理和高级编程任务,在代码竞赛、数学推理、Agent 工作流等场景表现优异,性能接近国际前沿闭源模型。Python00
MiMo-V2.5-ProMiMo-V2.5-Pro作为旗舰模型,擅⻓处理复杂Agent任务,单次任务可完成近千次⼯具调⽤与⼗余轮上 下⽂压缩。Python00
GLM-5.1GLM-5.1是智谱迄今最智能的旗舰模型,也是目前全球最强的开源模型。GLM-5.1大大提高了代码能力,在完成长程任务方面提升尤为显著。和此前分钟级交互的模型不同,它能够在一次任务中独立、持续工作超过8小时,期间自主规划、执行、自我进化,最终交付完整的工程级成果。Jinja00
Kimi-K2.6Kimi K2.6 是一款开源的原生多模态智能体模型,在长程编码、编码驱动设计、主动自主执行以及群体任务编排等实用能力方面实现了显著提升。Python00
MiniMax-M2.7MiniMax-M2.7 是我们首个深度参与自身进化过程的模型。M2.7 具备构建复杂智能体应用框架的能力,能够借助智能体团队、复杂技能以及动态工具搜索,完成高度精细的生产力任务。Python00