当前位置: 首页 > news >正文

Vue 终端开发桌面 vue-tui

JavaScript 写一个像 Claude Code、Gemini CLI 那样的终端应用,绕不开的名字通常是 React Ink

vue-tui 安装运行时

npm install @vue-tui/runtime vue
<script setup lang="ts"> import { shallowRef } from "vue" import { Box, Text, useInput } from "@vue-tui/runtime" const count = shallowRef(0) useInput((input) => { if (input === "+") count.value++ if (input === "-") count.value-- }) </script> <template> <Box> <Text>Count: </Text> <Text bold color="green">{{ count }}</Text> <Text dimColor> (+/- to change)</Text> </Box> </template>

项目同时支持 Vue SFC 和 JSX。喜欢模板语法的开发者可以继续写<template>

vue-tui 使用 Yoga 计算布局,也就是 React Native 和 Ink 背后的 Flexbox 引擎。核心组件<Box>负责方向、对齐、间距、边框和背景,<Text>负责文字样式、截断和换行。

这意味着前端开发者熟悉的flexDirectionjustifyContentalignItems等布局思路,可以继续沿用。

它不是用 CSS 画终端,而是把 Flexbox 的布局模型映射到字符网格。这一步很关键,因为复杂 TUI 真正难维护的部分,通常就是布局系统

vue-tui 0.1 一组偏完整的交互能力:

  • 键盘与焦点管理:支持按键监听、Tab 导航和组件级焦点控制

  • 现代终端输入:支持 Kitty keyboard protocol 和 bracketed paste

  • 动画能力:提供基于帧的动画驱动

  • 窗口响应式:终端尺寸变化后可以重新计算界面

  • 无障碍支持:能够检测屏幕阅读器,并提供线性化输出

  • 组件测试:在隔离的模拟终端中渲染组件、输入按键、逐帧断言结果

@vue-tui/testing。开发者可以渲染组件,模拟用户按下+-或方向键,再检查最后一帧输出是否符合预期

vue-tui 提供了实验性的 CLI,执行vue-tui dev后,可以通过 Vite 驱动终端里的 HMR。修改app.vue,界面会立即更新。

vue-tui 大量参考了 React Ink 的成熟设计,包括组件模型、Yoga 布局、焦点系统和渲染管线。

参考:

Tui

Vue TermUI | The Modern Terminal UI Framework

GitHub - vuejs-ai/vue-tui: The Vue framework for terminal UIs. SFC & JSX, Yoga flexbox, HMR, and testing out of the box. · GitHub

GitHub - Simon-He95/vue-tui: Vue 3 terminal UI toolkit for browser DOM and CLI stdout: components, ANSI rendering, markdown transcripts, log views, and agent consoles. · GitHub

http://www.gsyq.cn/news/1583870.html

相关文章:

  • 实测智谱 GLM 5.2 探索:真超长上下文与 Agent 能力的实践分享
  • 短视频爆款率提升2.8倍的关键:AI脚本生成→智能分镜→一键成片(企业级整合架构图解)
  • 机器人、机械臂相关的任务的开源数据集
  • 有声书AI化转型窗口期仅剩117天?——国家新闻出版署2024新规倒逼下的3类机构生存策略图谱
  • 实战指南:5个关键技术点掌握《鸣潮》AES加密模组开发
  • Citra模拟器终极指南:从零开始畅玩任天堂3DS游戏的完整教程
  • 逛完宽窄巷子买成都茶叶?雪儿姐茶坊特点解析
  • VutronMusic:跨平台音乐播放器终极指南 - 免费开源的高颜值第三方网易云播放器
  • 全能免费在线工具箱ToolBoxMax,100+工具本地浏览器运行,保护隐私无需注册
  • 双重检测不用慌!okbiye 分层降重降 AIGC 方案一次性打通论文审核关卡
  • 杭州吟颂职称政策调研:浙江省工程师申报要求
  • 3步轻松上手ESP32物联网开发:Arduino核心的终极入门指南
  • 为什么 SSR 一定会有 hydration mismatch?
  • 【影刀】手机自动化运行输入框无法输入文字,报错提示ACTION_SET_PROGRESS has failed on the element ‘android.view.accessibility.
  • 太原食品级干冰
  • ArcReel容器化部署指南:如何快速搭建AI视频生成工作台
  • 射频内透热 vs 红外 vs EMS vs 艾灸:四种减重设备技术路线一文说清
  • 2026国内龙虾下载推荐 五款实测 Aionclaw 领衔自动化提效指南
  • 基于FPGA KU060 2路40G光纤传输 PCIE转接卡
  • Cobalt:如何用免费开源工具告别视频下载的烦恼?
  • 【AI】AI agent 自进化方案大全
  • 第2篇:Winsock API Hook — 在应用层精确动刀
  • 如何快速掌握authentik:5个实用技巧让身份认证管理更简单
  • 2026年小程序商城需要多少钱呢
  • 基站天馈巡检效率翻倍,思仪 1466 信号源打造外场测试新标准
  • 云端GPU算力使用教程:在VeryAI平台完成深度学习模型训练全
  • 如何在3分钟内掌握Penpot:开源设计工具的完整入门指南
  • Apache POI Excel 导出样式美化实战指南
  • 科普知识类1. 铁氟龙电线是什么材质2. FEP与PTFE铁氟龙线缆性能对比3. 1332铁氟龙电线耐温等级解析4. AF200高温线缆氟塑料特性说明5. 铁氟龙电线耐高低温原理科普6. 储能线束为何
  • TypeOff:不止语音转写,自带 AI 润色的口述写作神器