找回密码
立即注册
搜索
热搜: Java Python Linux Go
发回帖 发新帖

4073

积分

0

好友

535

主题
发表于 昨天 01:17 | 查看: 11| 回复: 0

@vue-tui/runtime 已进入公开测试阶段,API 正趋于稳定,目前还在广泛收集社区反馈,以便在 1.0 发布前完成最终定型。CLI 及开发工具仍处于实验阶段,后续可能有所调整,暂不建议用于生产环境

vue-tui 0.1 发布宣传像素图,展示终端 UI 框架标志

项目简介

vue-tuiVue 3 的响应式系统与 <script setup> 的开发体验完整迁移至终端——你不仅保留了 Web 端熟悉的组件模型,底层还由纯正的 Yoga Flexbox 驱动布局,最终渲染为终端帧。

目标受众:深耕 Vue 生态的团队。如果你希望用 <script setup> 与响应式能力构建终端 UI,而不愿为了写个 CLI 工具去强行引入 React,那 vue-tui 正是为你准备的。如果技术栈是 React,请直接使用 Ink。vue-tui 的诞生,就是为了终结“终端 UI 开发非 React 不可”的局面。

核心特性

  • 终端原生的 Vue 响应式 — 完美支持 <script setup>shallowRefcomputedwatch
  • 纯正的 Yoga Flexbox 布局 — 提供 Box / Text 等基础图元组件,底层渲染引擎与 Ink、React Native 一脉相承。
  • 吸收 React Ink 久经考验的最佳实践 — 直接对标 Ink v7.0.4,并将其设计哲学融入 Vue 的体系中。
  • 强悍的现代终端能力 — 支持 Kitty 键盘协议、安全粘贴模式、帧动画,以及原生面向屏幕阅读器的 ARIA 线性解析器。

快速上手

npm i @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++
})
</script>

<template>
  <Box>
    <Text>
      Count: {{ count }} (press + to increment)
    </Text>
  </Box>
</template>

代码库中附带了更多示例:基于 <template> 与 JSX 的计数器、Flappy Bird 小游戏,还有一个 AI 编程助手(Coding-agent)的 UI 界面。

鸣谢

本项目站在 React Ink 的肩膀上构建而成。正是 Ink 定义了“优秀的组件化终端渲染器”,才让 vue-tui 有了成熟的参考与验证依据,在此深表感谢!

如果想持续了解 Vue 3 生态在终端开发与工程化方面的最新实践,欢迎访问 云栈社区 获取更多内容。

参考资料




上一篇:大模型Token降本实战:七条AI交互卫生习惯
下一篇:实测美团AI浏览器Tabbit:免费畅玩Claude/Gemini等各类付费大模型
您需要登录后才可以回帖 登录 | 立即注册

手机版|小黑屋|网站地图|云栈社区 ( 苏ICP备2022046150号-2 )

GMT+8, 2026-6-26 06:41 , Processed in 0.738179 second(s), 41 queries , Gzip On.

Powered by Discuz! X3.5

© 2025-2026 云栈社区.

快速回复 返回顶部 返回列表