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,可以结合sessionStoragelocalStorage进行存储和读取。

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

相关文章

  • Ant Design封装年份选择组件的方法

    Ant Design封装年份选择组件的方法

    这篇文章主要为大家详细介绍了Ant Design封装年份选择组件的方法,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-04-04
  • vue3 + antv/x6实现流程图的全过程

    vue3 + antv/x6实现流程图的全过程

    随着互联网的发展,越来越多的应用需要实现流程图的制作,如工作流程图、电路图等,文中通过代码以及图文将实现的过程介绍的非常详细,对大家学习或者工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2024-06-06
  • TypeScript基本类型 typeof 和keyof案例详解

    TypeScript基本类型 typeof 和keyof案例详解

    这篇文章主要介绍了TypeScript基本类型 typeof 和keyof案例详解,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2023-10-10
  • 详解Vue.js使用Swiper.js在iOS<11时出现错误

    详解Vue.js使用Swiper.js在iOS<11时出现错误

    这篇文章主要介绍了详解Vue.js使用Swiper.js在iOS<11时出现错误,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-09-09
  • vue3使用el-tooltip插槽达到换行效果

    vue3使用el-tooltip插槽达到换行效果

    本文主要介绍了vue3使用el-tooltip插槽达到换行效果,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-08-08
  • VUE中template的三种写法

    VUE中template的三种写法

    这篇文章介绍了VUE中template的三种写法,文中通过示例代码介绍的非常详细。对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-04-04
  • Vue+Koa+MongoDB从零打造一个任务管理系统的详细过程

    Vue+Koa+MongoDB从零打造一个任务管理系统的详细过程

    这篇文章主要介绍了Vue+Koa+MongoDB从零打造一个任务管理系统,本文通过图文实例代码相结合给大家介绍的非常详细,需要的朋友可以参考下
    2022-08-08
  • Vue3路由传参使用新手详细指南

    Vue3路由传参使用新手详细指南

    在Vue应用中路由传参是非常常见的需求,它允许我们在不同的组件之间传递数据,这篇文章主要介绍了Vue3路由传参使用的相关资料,文中通过代码介绍的非常详细,需要的朋友可以参考下
    2025-08-08
  • Vue封装的标准漏斗图教程

    Vue封装的标准漏斗图教程

    文章展示了基于Vue封装的标准漏斗图的代码,包括权重算法、滚轮监听和点击示例功能,旨在提供实用的图表展示技巧
    2025-02-02
  • Uniapp中WebView的使用与后退键处理教程

    Uniapp中WebView的使用与后退键处理教程

    在Uniapp中使用web-view组件来加载H5页面时,对于后退键的处理是一个常见需求,下面这篇文章主要给大家介绍了关于Uniapp中WebView的使用与后退键处理的相关资料,需要的朋友可以参考下
    2024-07-07

最新评论