Framework console
Xây dựng ứng dụng React full-stack render trong console.log.
Trang này đang chạy trong console của bạn. Mở bằng ⌘⌥JCtrl+Shift+J⌘⌥KCtrl+Shift+K⌘⌥C (bật tính năng dành cho nhà phát triển trước), nhấp vào bản xem trước bên dưới và nhấn ↑ ↓.
1import { useState } from "react";2import { AsciiFont, Box, Text, useInput } from "@textjs/app";34export default function Page() {5 const [count, setCount] = useState(0);6 useInput((e) => {7 if (e.key === "up") setCount((c) => c + 1);8 if (e.key === "down") setCount((c) => c - 1);9 });1011 return (12 <Box className="flex-col gap-1 p-2">13 <AsciiFont text="▼ TEXT.JS" />14 <Text color="muted">React 19 in console.log</Text>15 <Text bold color="accent">count = {count}</Text>16 </Box>17 );18}React 19
Text.js hỗ trợ render đồng thời, Suspense và ranh giới lỗi.
App Router
Thư mục trong app/ trở thành route và layout, còn Quay lại, Tiến tới và liên kết sâu đều hoạt động.
Lưới thích ứng
Lưới vừa với bảng DevTools gắn vào cửa sổ ở mọi mức thu phóng trang.
Nhập bằng bàn phím
Phím, thao tác dán và soạn thảo IME đến ứng dụng qua một <textarea> ẩn.
Bảng, biểu đồ, biểu mẫu và phím tắt
<Box><Stack><Grid><SplitPane><ScrollBox><Center>
<List><Table><Tree><Markdown><Code><Diff>
<LineChart><BarChart><Sparkline><ProgressBar><Gradient><Image>
<Input><Select><Checkbox><Switch><Slider><Dialog>
useKeymap<KeyHelp><KeyHints><CommandPalette><StatusBar>useFocus
Mỗi frame đã đổi là một lần gọi console.log
Commit không thay đổi ô nào sẽ không bao giờ đến console.
- React 19
01Commit
React commit qua một reconciler tùy chỉnh.
- Yoga
02Layout
Yoga sắp xếp các hộp trên ô nguyên.
- CellBuffer
03Vẽ
Chỉ vẽ lại các dòng bị ảnh hưởng.
- Mã băm dòng
04Cổng kiểm tra thay đổi
Frame không đổi dừng ở đây.
- RLE
05Mã hóa
3.200 ô thành 149 span
%c. - console.log
06Xuất
Các frame nối thêm cách nhau ít nhất 66 ms.
Frame nối thêm
Xóa console trước mỗi frame khiến console trống cho đến khi DevTools vẽ frame tiếp theo. Thay vào đó, Turbolog nối thêm từng frame.
Đọc bài viếtclear() + log()70.6% trốnglog(), appended1.0% trống%c cho 3.200 ôRender route trên máy chủ
Xuất runtime = "server" để render route và các component bất đồng bộ của nó trên máy chủ. Trình duyệt tải trình phát frame 21 kB (gzip) thay cho ứng dụng của bạn.
1import { Suspense } from "react";2import { Box, Text } from "@textjs/app";3import { db } from "@/lib/db";45export const runtime = "server";67async function Deploys() {8 const rows = await db.deploys.latest(5);9 return rows.map((d) => (10 <Text key={d.id}>{`${d.state} ${d.branch}`}</Text>11 ));12}1314export default function Page() {15 return (16 <Box className="flex-col p-1">17 <Text bold>Deployments</Text>18 <Suspense fallback={<Text color="muted">Loading…</Text>}>19 <Deploys />20 </Suspense>21 </Box>22 );23}- Prerender từng phầnFrame đầu của mỗi route tĩnh nằm trong HTML của route đó. Console vẽ trước khi JavaScript tải xong.
- Middleware
middleware.tschạy trước các yêu cầu khớp điều kiện, vớiNextRequest,NextResponsevàconfig.matcher. - Lưu bộ nhớ đệm
revalidate,unstable_cachevàrevalidateTaglưu route handler và dữ liệu vào bộ nhớ đệm, với stale-while-revalidate. - Adapter triển khai
text build --adapternhắm đếnstatic,bun,vercelhoặccloudflare. Route được render phía máy chủ cầnbunhoặctext start.
Cũng chạy trong terminal và agent
DevToolstext dev
Turbolog ghi từng frame dưới dạng span %c trong một lần gọi console.log.
Terminaltext run
text run render cùng ứng dụng App Router bằng ANSI truecolor và chạy route handler trong cùng tiến trình.
Agent lập trìnhtext mcp
Qua MCP, agent điều hướng route, nhấn phím và đọc từng frame dưới dạng văn bản thuần.
Viết mã với OpenCode trong DevTools
OpenCode Lite là TUI OpenCode được xây dựng lại bằng Text.js để chạy trong console trình duyệt.
Môi trường thử nghiệm
Agent theo kịch bản trả lời mọi prompt, không cần cài đặt gì.
Một lệnh
Chạy bunx @textjs/opencode@latest proxy và nhập mã lệnh in ra. Trang kết nối với OpenCode trên máy bạn.
Mô hình và phiên của bạn
Chọn bất kỳ mô hình nào đã cấu hình trên máy chủ bằng /models. Phiên, agent và mô hình đến từ máy chủ OpenCode của bạn.
Công cụ soạn thảo, lint và kiểm thử
Tiện ích DevTools
Thêm bảng có cây component, trình kiểm tra frame và dòng thời gian theo từng frame.
Bảng Text.jsVS Code
Xem trước frame cạnh mã và tạo sẵn tệp App Router.
⌘K VESLint
Phát hiện thẻ DOM trong component console, hộp trong văn bản và ký tự Menlo không có.
eslint-plugin-textjsKiểm thử
Render ngoài màn hình, nhấn phím và kiểm tra bằng lastFrame() trong bất kỳ trình chạy kiểm thử nào.
Mã lỗi
Lỗi và cảnh báo có mã TX liên kết đến trang giải thích cách sửa.
REPL console
Tạm dừng, đổi kích thước, xem khung dây và sao chép ứng dụng đang chạy từ prompt console.
window.textTừ phải sang trái
Triển khai thuật toán hai chiều Unicode và vượt qua cả 770.241 ca kiểm thử BidiTest.txt.
Phông FIGlet
Phân tích tệp .flf và khớp với 273 đầu ra ghi lại từ tệp nhị phân figlet.
Xây dựng bảng triển khai trong console
Khóa học miễn phí có 10 chương và mất khoảng 65 phút.