24 个版本 (15 个重大更改)
0.23.2 | 2024 年 3 月 10 日 |
---|---|
0.23.0 | 2024 年 2 月 3 日 |
0.22.0 | 2023 年 12 月 26 日 |
0.20.0 | 2023 年 5 月 11 日 |
0.1.2 | 2019 年 6 月 15 日 |
#177 在 命令行界面
每月 2,222 次下载
在 9 个 Crates 中使用 (3 直接)
16KB
349 行
tui-react 是一个库,它使组件具有状态,并提供了每个渲染的属性
请注意,此 crate 处于早期开发阶段,并针对 dua 的需求构建。
它的工作原理
它使用 TUI 基础设施终端,但将其修改为不强制实现 Widget
特性。它仅提供一个单一的可选特性,称为 TopLevelComponent
,这使得使用 Terminal::render(..)
绘制其实现者变得方便。然而,由于这强制在您的状态中不存在引用,因此可能不适合大多数人。
相反,任何结构都可以实现 render
方法或函数,并自由地将内容写入终端。这样,就可以利用 Rust 提供的一切,从而允许状态组件为您的工作。因此,此 crate 去掉了“一刀切”的渲染实现,大大增加了灵活性。
组件内部想要的状态,例如,可以是滚动位置。或者,您可以通过更改其公共状态来配置窗口。
它与 TUI / Ratatui 有何关系?
没有 TUI,这个项目无法存在,并且很高兴为命令行应用程序提供一组替代组件。Ratatui 是 tui 项目的延续。
为什么是 tui-react
?
在编写 dua 时,我管理 tui 小部件的状态时一直有一个糟糕的感觉,尝试了许多事情后,我意识到问题的实质。我花了些时间才意识到在 TUI 中无法有状态组件,我非常钦佩 API 设计中的智慧!毕竟,它有效地禁止了这一点!太棒了!
这就是为什么我在TUI提供的基础上实现了自己的终端和一些关键组件,这些组件可以作为状态世界中的标准构建块。
到目前为止,体验非常出色,感觉比以前好得多。让我们看看它会带来什么变化。
更新日志
v0.4.1 - 简化 block_width(…)
函数
v0.2.1 - 在crate中添加许可证文件
依赖关系
~6MB
~101K SLoC