SuperAPI AI 工具集

inktui

前端与建站

查看项目

更新于 10-16 05:05

技能介绍

用途:inktui 面向需要用 React 构建终端 CLI 应用的场景,基于 Ink(React for CLIs)、@inkjs/ui 组件库和 create-ink-app 脚手架。

主要能力:Ink 使用 Yoga(flexbox)布局并渲染到 stdout,每个元素都是 flex 容器;提供 Box、Text、Newline、Spacer、Static、Transform 等核心组件,以及 useInput、useApp、useFocus、useFocusManager、useStdin、useStdout、useStderr、useWindowSize、useBoxMetrics、useCursor、usePaste 等 hooks。@inkjs/ui 提供 TextInput、Select、MultiSelect、Spinner、ProgressBar、Alert、Badge、StatusMessage、ConfirmInput、EmailInput、PasswordInput、OrderedList、UnorderedList 等预置组件。

使用方式:可用 npx create-ink-app my-cli 或 npx create-ink-app --typescript my-cli 创建项目,也可在现有项目中执行 npm install ink react,按需安装 npm install @inkjs/ui。应用通过 render() 渲染 React 组件树,进程在有事件循环任务时保持存活,可用 Ctrl+C、useApp().exit() 或 instance.unmount() 退出。输入处理使用 useInput hook 而非 DOM 事件;所有字符串内容必须包在 <Text> 中;持久输出用 <Static>;Box 支持 single、double、round、bold 等边框样式。测试可用 ink-testing-library 的 render、lastFrame、stdin。render() 支持 stdout、stdin、stderr、exitOnCtrlC、patchConsole、maxFps、incrementalRendering、concurrent、interactive 等选项,另有 renderToString() 用于快照。

适用场景:构建交互式终端界面、多步向导、加载状态、表格、命令路由、全屏应用等。

限制:资料未提供收费、价格、平台支持范围等信息;需注意避免在 Box 中直接放裸字符串、使用 DOM 事件、Static 缺少 key、未处理 raw mode、无限重渲染及多输入冲突等常见问题。