XTerminal是一款轻量级高性能Web终端组件,基于TypeScript开发,专为开发者在浏览器中快速构建命令行交互界面而设计。组件支持将终端功能嵌入网页应用,通过JavaScript即可创建终端实例并展示在页面中,适用于在线命令行工具、后台管理系统、云平台控制台等应用场景。
XTerminal管部分采用简洁的API设计,支持多终端实例管理,并针对大量文本输出和实时交互场景进行性能优化,保证网页终端运行流畅。同时组件提供丰富的样式和功能扩展能力,开发者可以根据项目需求调整界面布局与交互逻辑,方便集成到各种Web应用中。
1、性能
它轻便、快速,且以性能为核心设计。该库高效处理用户输入,带来响应迅速且流畅的CLI体验。
2、无依赖
该库不依赖任何外部依赖,保持项目精简,减少冲突或版本问题的可能性。
3、灵感来源于Node.js
该库借鉴了Node.js年的 readline 模块,提供了类似的输入/输出管理功能,使熟悉 Node.js CLI 开发的开发者能够顺利过渡。
4、可定制
根据应用的风格和需求定制CLI的外观和行为。自定义颜色、主题、字体及其他视觉元素,打造独特且连贯的用户体验。
5、原生文本格式
用原生网页技术(HTML和CSS)增强你的CLI输出,包括样式、内嵌图片、超链接及其他视觉增强。
6、事件驱动 API
利用事件驱动的 API 处理用户输入、执行命令并响应各种事件。连接输入、按键和完成等事件,创建动态且交互式的CLI交互。
1、快速入门
要开始,你需要安装 XTerminal,并将 and from XTerminal 文件夹导入你的应用程序 CSSJSdist。使用CDN安装指南的快速设置。这种设置需要一个简单的项目结构,包含三个基本文件index.htm、lstyles.css、main.js;并且在同一目录中。在浏览器中打开该文件。
2、安装
以下是一些安装方式
-CDN - (用于简单设置的开发)
-NPM - (如果你用捆绑器或有构建步骤,可以用这个)
3、量产版本
有两种量产即用版本:
-xterminal.umd.js- 对于浏览器(无构建工具),它是最小化的
-xterminal.esm.js- 对于构建工具如 Vite 或 Webpack 来说
4、默认事件
每个终端实例都有内部使用的现有事件,可以在你的应用生命周期中使用。包括:
-data事件 - 用户输入数据并按下回车键时触发
-clear事件 - 在 term.clear() 触发
-keypressevent - 除了 Tab、Enter、ArrowUp 和 ArrowDown 以外的每按键都触发
-pause事件 - 在term.pause()触发,当终端输入被停用或暂停时
-resume事件 - 在term.resume()触发,当终端输入被激活或恢复时
5、暂停与继续
-使用 term.pause() 会暂停或停用终端接收用户输入,而 term.resume() 则相反。
-调用时,term.pause() 会触发暂停事件,而 term.resume() 则触发 resume 事件。
6、历史列表
每当用户在终端输入数据并按下键时,输入都会通过 term.history 保存在内部历史栈中(可作为数组访问)
1、Enter 键
当按下该键时,终端捕获当前输入值,清除输入,向历史栈添加值,然后触发传递输入值的事件。
2、ArrowUp 键
当按键被按下时,它会连续地在之前的条目之间交替,因为每个条目都设置为当前输入。它通过本地历史栈运行,同时将相应的条目设置为当前终端输入,位于某个特定索引。
(注:不会有重复条目推送到历史栈。如果之前的输入和当前输入相同,后者不会被推送到历史栈。)
3、ArrowDown 键
如果该键被多次点击,返回最近的输入,则使用该键。密钥通过将最近的条目设置为当前输入,从而在历史中继续推进。如果之前没有输入,则将输入设置为之前缓冲的输入,其他则不行。
4、Tab 键
就像真实终端应用一样,密钥为命令提供自动补全未来,顺序从终端输入中当前字符开始。如果终端输入为空,则没有匹配的字符。为了实现有效的自动完成,你必须设置一个能匹配出最佳匹配的函数。
展开内容