跳转到内容

内置组件

内置组件是 ratatui-kit 的参考手册,不是教程的替代品。教程会先带你把状态、输入互斥和路由串起来;当你开始写真实应用,需要查“应该用哪个组件、这个组件负责什么、不负责什么”时,再回到这里。

这些组件遵循同一条边界:业务中立、可组合、输入语义清晰。组件可以帮你处理布局、绘制、输入层和常见交互,但不会拥有你的业务数据模型。

先组合

ViewTextBorderScrollView 和选择组件搭界面;业务状态留在页面组件或 hook。

再独占输入

搜索框和弹窗类组件内部会创建输入层,打开时不会让背景组件继续处理键盘事件。

最后虚拟化

普通列表先用 Select / MultiSelect;数据量大、行渲染复杂时再用 VirtualList

组件用途继续阅读
View默认布局容器,负责 flex-like 子区域切分布局与文本基础
Border边框、标题和局部装饰布局与文本基础
Center把子内容居中放进固定区域布局与文本基础
Positioned需要绝对定位的特殊布局布局与文本基础
Fragment透明容器,包住多个子节点但不创建独立布局节点布局与文本基础
Text单段文本、LineText 或字符串展示布局与文本基础
WrappedText长正文自动换行,并把真实行数交给布局长文本、日志、小说正文
ScrollView可滚动内容容器,适合包住长正文或长面板局部滚动区域

WrappedTextScrollView 是长文本体验的组合核心:前者决定内容高度,后者决定可见窗口和滚动条。它们来自真实阅读场景,而不是只为示例存在。

组件用途输入语义
Input单行输入显示与底层编辑状态低层组件,通常由上层组件驱动
SearchInput带激活键、提交、清空和编辑态的搜索/新增输入打开编辑态后独占输入
Modal基础弹层、遮罩、定位和 layer 注入需要和 handler 共享同一个 layer
ConfirmModal确认/取消流程内部封装独占输入层
AlertModal提示信息和关闭键内部封装独占输入层
ShortcutInfoModal可滚动快捷键帮助内部封装独占输入层

如果只是业务确认、提示、快捷键帮助,优先使用封装好的 modal 组件。只有弹窗内部有自己的复杂交互时,才手写 use_input_layeruse_event_handler(EventScope::Layer(...))Modal(layer: Some(...))

组件或模式用途继续阅读
Select普通单选列表小到中等列表
MultiSelect普通多选列表小到中等多选
TreeSelect通用树形选择,不绑定文件语义分组、层级、目录式数据
Table数据驱动表格,单元格网格边框、换行、行/列高亮带边框/markdown 表格与结构化数据网格
VirtualList长列表窗口化渲染,自定义行几千到几万行
Virtual Multi SelectVirtualList + HashSet 组合出来的长列表多选模式长列表多选、业务自控选择集

Virtual Multi Select 不是单独组件,而是一个推荐组合模式。这样比把每种业务选择都做成内置组件更稳:VirtualList 只负责光标、窗口化和可见行渲染,选择集合仍然由业务代码拥有。

场景exampleVHS
滚动容器cargo run --example scrollviewdocs/tapes/scrollview.tape
自动换行正文cargo run --example wrapped_textdocs/tapes/wrapped-text.tape
单行输入cargo run --example inputdocs/tapes/input.tape
搜索/新增输入cargo run --example search_inputdocs/tapes/search-input.tape
基础弹层cargo run --example modaldocs/tapes/modal.tape
确认弹窗cargo run --example confirm_modaldocs/tapes/confirm-modal.tape
提示弹窗cargo run --example alert_modaldocs/tapes/alert-modal.tape
快捷键帮助cargo run --example shortcut_info_modaldocs/tapes/shortcut-info-modal.tape
单选cargo run --example selectdocs/tapes/select.tape
多选cargo run --example multi_selectdocs/tapes/multi-select.tape
树形选择cargo run --example tree_selectdocs/tapes/tree-select.tape
数据表格cargo run --example tabledocs/tapes/table.tape
虚拟列表cargo run --example virtual_listdocs/tapes/virtual-list.tape
虚拟多选模式cargo run --example virtual_multi_selectdocs/tapes/virtual-multi-select.tape

后续新增内置组件时,也应该先补 example、VHS tape 和参考页。文档里出现的组件行为必须能从真实 example 复现。