34.基于xterm.js 实现Vue版本终端terminal

本文档展示了如何使用Vue结合xterm.js和WebSocket创建一个前端终端。通过安装xterm.js及相关插件,配置Vue组件监听WebSocket连接,实现实时数据交互。后端使用node-pty和ws库来读写终端。当WebSocket连接成功后,前端初始化终端并调整大小,同时监听窗口变化以适应不同屏幕尺寸。此外,还提供了在输入后滚动到终端底部的实现方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

基于xterm.js 实现Vue版本终端terminal

前端实现

xterm

npm install --save xterm

xterm-addon-fit

xterm.js的插件,使终端的尺寸适合包含元素。

npm install --save xterm-addon-fit

xterm-addon-attach

xterm.js的附加组件,用于附加到Web Socket

npm install --save xterm-addon-attach

<template>
    <div id="xterm" class="xterm" />
</template>


 

<script>
import 'xterm/css/xterm.css'
import { Terminal } from 'xterm'
import { FitAddon } from 'xterm-addon-fit'
import { AttachAddon } from 'xterm-addon-attach'

export default {
  name: 'Xterm',
  props: {
    socketURI: {
      type: String,
      default: ''
    },
  },
 watch: {
    socketURI: {
      deep: true, //对象内部属性的监听,关键。
      immediate: true,
      handler() {
        this.initSocket();
      },
    },
  },
  mounted() {
    this.initSocket()
    window.addEventListener('resize', this.onTerminalResize);
  },
  beforeDestroy() {
    this.socket.close()
    this.term&&this.term.dispose()
  },
  methods: {
   initTerm() {
      // this.initSocket();
      let term = new Terminal({
  
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值