@vensst/js-toolkit 文档@vensst/js-toolkit 文档
  • v1.x
  • v2.x
  • 简体中文
  • English
  • v1.x
  • v2.x
  • 简体中文
  • English
  • 指南
  • Number
  • String
  • Array
  • Object
  • Date
  • Function
  • DOM
  • Validate
  • Math
  • Storage
  • URL
  • File
  • Image
  • Http
  • Scroll
  • Window
  • Other

Other

deepClone

  • 说明:

    深克隆

  • 参数:

    • {*} data - 要克隆的数据
  • 返回值:

    {*} 克隆后的数据副本

  • 示例:

let arr = [null, undefined, true, new Date(), function () {
}, 1, "aa", [], {}]
deepClone(arr)
// [null, undefined, true, Wed Jun 22 2022 13:53:02 GMT+0800 (中国标准时间), ƒ, 1, 'aa', [], {}]

getRandomColor

  • 说明:

    获取十六进制随机颜色

  • 返回值:

    {string} 颜色值

  • 示例:

 getRandomColor() // #2a260b

addScript

  • 说明:

    动态加载脚本文件

  • 添加版本:1.1.0-beta.11

  • 参数:

    • {string} src - 脚本地址
    • {boolean} [isAsync=true] - 是否异步加载
  • 返回值:

    {Promise<void>} 脚本加载完成的 Promise

  • 示例:

addScript("https://cdn.bootcdn.net/ajax/libs/jquery/3.6.0/jquery.min.js")

btoa

  • 说明:

    简单base64编码

  • 参数:

    • {string} str - 需要编码的字符串
  • 返回值:

    {string} 返回编码后的字符串

  • 示例:

btoa('www.baidu.com?a=1&b=2') // d3d3LmJhaWR1LmNvbSUzRmElM0QxJTI2YiUzRDI=

atob

  • 说明:

    简单base64解码

  • 参数:

    • {string} str - 通过btoa编码后的字符串
  • 返回值:

    {string} 解码后的字符串

  • 示例:

atob('d3d3LmJhaWR1LmNvbSUzRmElM0QxJTI2YiUzRDI')
// www.baidu.com?a=1&b=2

base64_encode

  • 说明:

    Base64 编码

  • 参数:

    • {string} data - 需要编码的数据
  • 返回值:

    {string} 编码后的字符串

base64_decode

  • 说明:

    base64 解码

  • 参数:

    • {string} data - 需要解码的数据
  • 返回值:

    {string} 解码后的字符串

utf8_encode

  • 说明:

    utf8 编码码

  • 参数:

    • {string} data - 需要编码的数据
  • 返回值:

    {string}

utf8_decode

  • 说明:

    utf8 解码

  • 参数:

    • {string} data - 需要解码的数据
  • 返回值:

    {string}

loadAudio

  • 说明:

    音频加载

  • 参数:

    • {string} src - 音频地址
    • {Function} [callback] - 音频元数据加载完成后的回调函数
  • 返回值:

    {HTMLAudioElement} Audio 元素实例

domToString

  • 说明:

    将 DOM 元素转换为 HTML 字符串

  • 参数:

    • {Element} htmlDOM - DOM 元素
  • 返回值:

    {string}

stringToDom

  • 说明:

    将 HTML 字符串转换为 DOM 元素

  • 参数:

    • {string} htmlString - HTML 字符串
  • 返回值:

    {Element}

setCursorPosition

  • 说明:

    在光标位置插入字符

  • 参数:

    • {HTMLTextAreaElement|HTMLInputElement} dom - 输入框元素
    • {string} val - 要插入的值

insertAtCursor

  • 说明:

    光标所在位置插入字符

  • 参数:

    • {HTMLTextAreaElement|HTMLInputElement} dom - 输入框元素
    • {string} val - 要插入的值

escapeHTML

  • 说明:

    转义HTML特殊字符,防止XSS攻击 将 <、> 和 & 转换为对应的HTML实体

  • 参数:

    • {string} [str=''] - HTML字符串

unescapeHTML

  • 说明:

    解转义HTML特殊字符,将HTML实体转换回原始字符,将 &, <, >, ", 9 转换回对应的原始字符

  • 参数:

    • {string} [str=''] - 需要解转义的HTML字符串

compareVersion

  • 说明:

    版本对比

  • 添加版本:1.1.0-beta.11

  • 参数:

    • {string} version1 - 版本号
    • {string} version2 - 版本号
  • 返回值:

    {number} 1: version1 > version2, -1: version1 < version2, 0: version1 = version2

copyToClipboard

  • 说明:

    复制文本到剪贴板

  • 参数:

    • {string} text - 要复制的文本
  • 返回值:

    {Promise<boolean>} 复制操作是否成功

  • 示例:

 copyToClipboard("复制的文本")

wait

  • 说明:

    等待指定时间

  • 参数:

    • {number} [delay=2000] - 等待时间(毫秒)
  • 返回值:

    {Promise<void>} Promise,在指定时间后 resolve

  • 示例:

wait().then(() => {
  console.log('等待结束');
});

resizeObserver

  • 说明:

    监听一个或多个元素的尺寸变化

  • 参数:

    • {HTMLElement|HTMLElement[]|NodeList} elements - 需要监听的单个元素或元素数组
    • {Function} callback - 尺寸变化时调用的回调函数,接收 ResizeObserverEntry 数组作为参数
  • 返回值:

    {Function} 停止监听的函数,可选择性地停止部分元素的监听

  • 示例:

// 监听元素
const stopObserving = resizeObserver(divEls, function (entries) {
  console.log('元素大小变化1', entries);
})
// 停止监听
stopObserving()

WebSocketUtil

  • 说明:

    WebSocketUtil 类用于封装 WebSocket 连接逻辑,包括自动重连、心跳机制等功能。

  • 添加版本:2.0.0

  • 参数:

    • {string} url - WebSocket 服务器地址
    • {Object} options - 配置选项
    • {boolean} [options.isReconnect=true] - 是否自动重连
    • {number} [options.reconnectInterval=3000] - 重连间隔时间(毫秒)
    • {number} [options.maxReconnectAttempts=5] - 最大重连次数,-1表示无限重连
    • {boolean} [options.isHeartbeat=false] - 是否启用心跳机制
    • {number} [options.heartbeatInterval=30000] - 心跳间隔时间(毫秒)
    • {string} [options.pingMessage="{ type: 'ping' }"] - 心跳消息
  • 示例:

export default {
  name: "WebSocketDemo1",
  data() {
    return {
      wsUrl: "ws://localhost:5003",
      msg: "",
      websocket: null,
    };
  },
  //方法
  methods: {
    onConnect() {
      if (this.websocket) {
        // 设置消息处理函数
        this.websocket.setMessageHandler(this.onMessage);
        this.websocket.connect();
      }
    },
    onMessage(msg) {
      console.log("onMessage -->", msg);
    },
    onSend() {
      this.websocket?.send(this.msg);
    },
    onClose() {
      this.websocket?.close();
    },
    getSocket() {
      console.log(this.websocket, this.websocket?.socket);
    },
  },
  created() {
    this.websocket = new WebSocketUtil(this.wsUrl, {isHeartbeat: true});
  },
  beforeDestroy() {
    this.onClose();
  },
};
最近更新: 2025/12/12 01:47
Contributors: yf_hu
Prev
Window