简介

Text.js 是什么、包含什么,以及帧如何渲染。

Text.js 是一个 React 框架,用于构建通过 console.log 在 DevTools 控制台中渲染的应用。

实时↑ ↓ count · r resettsx
preview://counter:1
import { useState } from "react";import { Box, Text, useInput } from "@textjs/app";export default function Page() {  const [count, setCount] = useState(0);  useInput((e) => {    if (e.key === "up") setCount((c) => c + 1);    if (e.key === "down") setCount((c) => c - 1);  });  return (    <Box className="flex-col p-1 border rounded">      <Text bold>count = {count}</Text>    </Box>  );}

预览可实时交互。点击预览并按 ↑。

包含的功能

  • React 19:并发渲染、Suspense 和错误边界。
  • App Router:布局、页面、动态路由段和路由处理程序。
  • Yoga 布局:在 WebAssembly 中运行的 flexbox,对齐到整数单元格。
  • Turbolog:每个发生变化的帧调用一次 console.log。
  • 控制台 UI:页面仅包含一个焦点捕获区和一个隐藏的输入框。

工作原理

状态向下流动:从 React 到布局,再到单元格缓冲区,最后到控制台。

React 19 ▼ Yoga ▼ CellBuffer ▼ console.log(format, ...css)

未发生变化的帧会跳过,因此空闲应用不输出任何日志。

后续步骤

  • 安装:创建你的第一个应用。
  • 路由:页面、布局和导航。
  • Turbolog:帧的编码方式。
  • OpenCode:使用 Text.js 构建的智能体 TUI。
在 GitHub 上编辑此页