@androidtui/solid

中文文档
0.8.3发布于 2026/11/09MITTypeScriptESM + CJS近 30 天下载 1713

Android和Termux上的 OpenTUI 终端应用程序的 SolidJS 渲染器

中文使用文档
文档目录18 节
  1. 安装
  2. 使用量
  3. 目录
  4. 核心概念
  5. 构成部分
  6. API 参考
  7. render(node, rendererOrConfig?)
  8. testRender(node, options?)
  9. extend(components)
  10. getComponentCatalogue()
  11. 钩子
  12. Portal
  13. Dynamic
  14. 构成部分
  15. 布局显示( D)
  16. 投入
  17. 代码diff( D)
  18. 文本修改器

@ opentui/ 固态

Solid.js 对 打开TUI。 。 。 .

安装

bun install solid-js@^1.9 @opentui/solid

使用量

  1. 在 tsconfig.json 中添加 jsx 配置 :
{
  "compilerOptions": {
    "jsx": "preserve",
    "jsxImportSource": "@opentui/solid"
  }
}
  1. 添加预装脚本到 bunfig.toml :
preload = ["@opentui/solid/preload"]
  1. 向 index.tsx 添加渲染函数 :
import { render } from "@opentui/solid"

render(() => <text>Hello, World!</text>)
  1. 运行 bun index.tsx。 。 。 .

  2. 建设用途 Bun. 建设 (单位:千美元)来源:

import solidPlugin from "@opentui/solid/bun-plugin"

await Bun.build({
  entrypoints: ["./index.tsx"],
  target: "bun",
  outdir: "./build",
  plugins: [solidPlugin],
  compile: {
    target: "bun-darwin-arm64",
    outfile: "app-macos",
  },
})

目录

核心概念

构成部分

打开TUI 实心暴露出内在JSX元素

  • 显示布局( D) : text, (中文(简体) ), box, (中文(简体) ), scrollbox, (中文(简体) ), ascii_font
  • 输入 : input, (中文(简体) ), textarea, (中文(简体) ), select, (中文(简体) ), tab_select
  • 代码( D) : code, (中文(简体) ), line_number, (中文(简体) ), diff
  • 文本修改器 : span, (中文(简体) ), strong, (中文(简体) ), b, (中文(简体) ), em, (中文(简体) ), i, (中文(简体) ), u, (中文(简体) ), br, (中文(简体) ), a

API 参考

render(node, rendererOrConfig?)

将固体元件树放入 CLI 渲染器。 如果你遗漏 rendererOrConfig, (中文(简体) ), render() 创建带有默认选项的渲染器. render() 返回一个在初始挂载后解决的保证。 破坏出质器会处理固体根.

import { render } from "@opentui/solid"

render(() => <App />)

参数:

  • node: 函数返回 JSX 元素.
  • rendererOrConfig?数字 : CliRenderer 实例或 CliRendererConfig。 。 。 .

testRender(node, options?)

创建用于快照和交互测试的测试渲染器.

import { testRender } from "@opentui/solid"

const testSetup = await testRender(() => <App />, { width: 40, height: 10 })

extend(components)

将自定义可转换成JSX内在要素.

import { extend } from "@opentui/solid"

extend({ customBox: CustomBoxRenderable })

固态调用构造器 { id } 只有这个 建造后,Solid将每个JSX道具应用于实例. 类 仅从其构建者选项中读取一个值并不能从JSX中得到这个值.

getComponentCatalogue()

返回当前授权 JSX 标记搜索的组件目录 .

钩子

  • useRenderer()
  • onResize(callback)
  • onFocus(callback)
  • onBlur(callback)
  • useTerminalDimensions()
  • useKeyboard(handler, options?)
  • usePaste(handler)
  • useSelectionHandler(handler)
  • useTimeline(options?)

Portal

孩子们进入另一个山地节点。 用于叠加和工具提示.

import { Portal } from "@opentui/solid"
;<Portal mount={renderer.root}>
  <box border>Overlay</box>
</Portal>

Dynamic

动态渲染任意的内在元素或组件.

import { Dynamic } from "@opentui/solid"
;<Dynamic component={isMultiline() ? "textarea" : "input"} />

构成部分

布局显示( D)

  • text: 有样式的文本容器
  • box: 设置有边框、垫装和弹性设置的容器
  • scrollbox: 可滚动容器
  • ascii_font: ASCII 艺术文本渲染器

对于 QR 代码, 调用 registerQRCode() 从 @opentui/qrcode/solid登记 qr_code 键.

投入

  • input: 单行文本输入
  • textarea: 多行文本输入
  • select: 列表选择
  • tab_select: 基于标签的选择

代码diff( D)

  • code: 语法高亮的代码块
  • line_number: 有 diff/ 诊断帮助的行码显示
  • diff: 统一或分割 diff 查看器

文本修改器

仅在 a 内使用 text 组件 :

  • span: 内置样式文本
  • strong编号 :b: 粗体文字
  • em编号 :i: 斜体文字
  • u: 下划线文本
  • br: 换行符
  • a: 链接文本与 href

版本与发布记录

@androidtui/solid 共发布 30 个版本,首次发布于 2026/08/09;过去 12 个月发布了 30 个版本。

版本发布日期距今
0.8.3latest2026/11/09今天
0.8.02026/10/3010 天前
0.7.02026/10/3010 天前
0.6.82026/10/2416 天前
0.6.62026/10/1526 天前
0.6.52026/10/1426 天前

其他发布通道:future → 0.5.12-android.1。

关于 @androidtui/solid 的常见问题

@androidtui/solid 是什么?

Android和Termux上的 OpenTUI 终端应用程序的 SolidJS 渲染器

如何安装 @androidtui/solid?

在项目目录运行 npm install @androidtui/solid,或使用 pnpm add / yarn add / bun add。它还需要宿主项目提供 peer 依赖:solid-js(^1.9.12)。npm 7 及以上与 pnpm 8 及以上默认会自动安装必需的 peer 依赖,Yarn 需要手动安装。

@androidtui/solid 支持 TypeScript 吗?

支持。包内自带 TypeScript 类型声明(package.json 声明了 types 入口),安装后即可获得类型提示,无需再安装 @types 包。

@androidtui/solid 支持 ESM 还是 CommonJS?

同时提供 ES Module 与 CommonJS 入口,import 和 require() 都可以使用,打包工具会自动选择合适的版本。

@androidtui/solid 可以商用吗?

@androidtui/solid 使用 MIT 许可。宽松许可:允许商业使用、修改和再分发,通常只需在分发时保留原版权与许可声明。以上为概括,不构成法律意见,请以许可原文为准。

@androidtui/solid 的下载量有多少?

根据 npm 官方下载统计,@androidtui/solid 在 2026/10/06 – 2026/11/04 这 30 天内被下载 1,713 次,日均约 57 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入,适合横向比较热度,不能直接等同于使用人数。

@androidtui/solid 还在维护吗?

最新版本 0.8.3 发布于 2026/11/09(今天);至今共发布 30 个版本,其中过去 12 个月发布了 30 个;首次发布于 2026/08/09。发布频率只是参考信号:功能稳定的工具可能很少需要更新,建议结合源码仓库的 issue 和提交记录判断。