Vue3中生成UUID的两种方法

 更新时间:2026年01月15日 10:29:35   作者:BillKu  
这篇文章主要介绍了在Vue3中生成UUID的两种主要方式:使用uuid库和手动生成函数,uuid库标准可靠,支持多种版本,但需要安装依赖,手动生成简单但唯一性稍弱,且需自行测试和维护,推荐使用uuid库,因为它在大多数场景下都是最可靠的选择,需要的朋友可以参考下

在Vue 3中生成UUID(通用唯一识别码),主要有两种方式:使用专门的uuid库,或编写自己的生成函数。为了帮你快速了解,下面这个表格对比了主流方法:

方法优点缺点适用场景
使用uuid库标准可靠、支持多种版本、广泛应用需安装依赖大多数需要高唯一性和符合标准的场景
手动生成无额外依赖、代码透明唯一性稍弱、需自行测试和维护对项目体积敏感或简单临时的场景
使用Crypto API浏览器原生支持、基于密码学安全的随机数浏览器兼容性对安全性要求高且需控制依赖的场景

使用uuid库(推荐)

这是最常用且可靠的方法。

安装依赖
在你的项目根目录下,通过npm或yarn安装uuid库:

npm install uuid

在组件中生成UUID
在你的Vue 3组件中,你可以这样使用:

<template>
  <div>
    <p>生成的UUID: {{ uuid }}</p>
    <button @click="generateUuid">生成新的UUID</button>
  </div>
</template>

<script>
import { v4 as uuidv4 } from 'uuid'; // 按需导入v4版本[citation:5]
import { ref } from 'vue';

export default {
  setup() {
    const uuid = ref(uuidv4()); // 使用ref使其是响应式的

    const generateUuid = () => {
      uuid.value = uuidv4();
    };

    return {
      uuid,
      generateUuid
    };
  }
};
</script>

如果你使用<script setup>语法,代码会更简洁:

<template>
  <div>
    <p>生成的UUID: {{ uuid }}</p>
    <button @click="generateUuid">生成新的UUID</button>
  </div>
</template>

<script setup>
import { v4 as uuidv4 } from 'uuid';
import { ref } from 'vue';

const uuid = ref(uuidv4());
const generateUuid = () => {
  uuid.value = uuidv4();
};
</script>

手动生成或使用原生API

如果不想安装额外库,也可以手动实现。

手动生成UUID
以下是一个常用的生成UUID v4格式的函数:

function generateUUID() {
  return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function(c) {
    const r = (Math.random() * 16) | 0;
    const v = c == 'x' ? r : (r & 0x3) | 0x8;
    return v.toString(16);
  });
}

在Vue 3的setup()中,你可以这样引入和使用它:

import { ref } from 'vue';
// ... 假设上述函数已定义或从工具文件导入
const uuid = ref(generateUUID());

使用现代浏览器的Crypto API
浏览器原生的Crypto接口提供了更安全的随机数,可以用来生成UUID。

function generateCryptoUUID() {
  // 注意:这是一个简化示例,生成的格式可能不完全符合标准v4 UUID
  return ([1e7]+-1e3+-4e3+-8e3+-1e11).replace(/[018]/g, c =>
    (c ^ crypto.getRandomValues(new Uint8Array(1))[0] & 15 >> c / 4).toString(16)
  );
}

注意:此方法依赖于浏览器环境,且示例代码生成的UUID格式可能与标准有细微差别。在Node.js等非浏览器环境下不可用。

应用场景与选择建议

掌握了方法后,如何在实战中选择呢?

选择UUID版本:uuid库支持多个版本,最常用的是v4(随机数),适用于绝大多数场景。如果你需要基于时间或命名空间生成可预测的UUID,可以考虑v1或v5。

常见应用场景:

  • 为列表项提供唯一的key。
  • 为动态组件或表单元素绑定唯一ID。
  • 在API请求中作为唯一追踪标识(可放在HTTP请求头中)。
  • 持久化存储:如果你希望用户在一次会话或多次访问中保持同一个UUID,可以结合sessionStorage或localStorage进行存储和读取。

以上就是Vue3中生成UUID的两种方法的详细内容,更多关于Vue3生成UUID方法的资料请关注脚本之家其它相关文章!

相关文章

  • vue+elementUI 实现内容区域高度自适应的示例

    vue+elementUI 实现内容区域高度自适应的示例

    这篇文章主要介绍了vue+elementUI 实现内容区域高度自适应的示例,帮助大家更好的理解和使用vue,感兴趣的朋友可以了解下
    2020-09-09
  • vue页面params传值的坑及解决

    vue页面params传值的坑及解决

    这篇文章主要介绍了vue页面params传值的坑及解决方案,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-05-05
  • vue任意关系组件通信与跨组件监听状态vue-communication

    vue任意关系组件通信与跨组件监听状态vue-communication

    这篇文章主要介绍了vue任意关系组件通信与跨组件监听状态vue-communication,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-10-10
  • Vue下拉框回显并默认选中随机问题

    Vue下拉框回显并默认选中随机问题

    这篇文章主要介绍了Vue下拉框回显并默认选中随机问题,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-09-09
  • Vue 2源码解析HTMLParserOptions.start函数方法

    Vue 2源码解析HTMLParserOptions.start函数方法

    这篇文章主要为大家介绍了Vue 2源码解析HTMLParserOptions.start函数方法,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-08-08
  • vue改变对象或数组时的刷新机制的方法总结

    vue改变对象或数组时的刷新机制的方法总结

    这篇文章主要介绍了vue改变对象或数组时的刷新机制的方法总结,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2019-04-04
  • vue微信分享出来的链接点开是首页问题的解决方法

    vue微信分享出来的链接点开是首页问题的解决方法

    这篇文章主要为大家详细介绍了vue微信分享出来的链接点开是首页问题的解决方法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-11-11
  • vue解析指令compile源码层面使用解析

    vue解析指令compile源码层面使用解析

    这篇文章主要为大家介绍了Vue编译器解析compile源码解析示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-09-09
  • Vue3+Vant实现简单的登录功能

    Vue3+Vant实现简单的登录功能

    这篇文章主要为大家详细介绍了Vue3如何结合Vant实现简单的登录功能,文中的示例代码讲解详细,有需要的小伙伴可以跟随小编一起学习一下
    2024-04-04
  • Vue3中的shallowRef 和shallowReactive对比分析

    Vue3中的shallowRef 和shallowReactive对比分析

    这篇文章主要介绍了Vue3中的shallowRef 和shallowReactive,通过示例代码逐一对他们的使用做的详细介绍,文末补充介绍了vue3的shallowRef()、shallowReactive()和shallowReadonly()的使用,需要的朋友可以参考下
    2023-01-01

最新评论