vue3生成uuid
时间: 2025-02-03 16:21:31 浏览: 56
### 实现 UUID 的生成
在 Vue 3 项目中,可以利用 `uuid` 库来方便地生成全局唯一的标识符(UUID)。安装该库可以通过 npm、yarn 或者 pnpm 完成[^3]。
#### 安装依赖包
```bash
npm install uuid
# 或者使用 yarn
yarn add uuid
# 或者使用 pnpm
pnpm add uuid
```
#### 导入并使用 UUID 函数
为了简化项目的开发流程以及提高代码的可维护性和复用率,在实际应用中通常会将 UUID 生成功能封装为工具函数。下面是一个基于单例模式的例子,它不仅能够确保每次调用都返回相同的 ID (对于同一实例),而且还能保证这个 ID 是持久化的——即使页面刷新也不会丢失:
```javascript
// src/utils/getUUID.js
import { v4 as uuidv4 } from 'uuid';
function getUUID(){
let uuid_token = localStorage.getItem("UUIDTOKEN");
if (!uuid_token){
uuid_token = uuidv4();
localStorage.setItem("UUIDTOKEN", uuid_token);
}
return uuid_token;
}
export default getUUID;
```
此方法首先尝试从浏览器的本地存储中读取已存在的 UUID;如果没有找到,则新创建一个,并将其保存到本地以便后续访问时可以直接取出而不必重新计算[^2]。
另外一种情况是希望生成带有特定前缀或者满足某些条件的 UUID,比如以字母开头的情况:
```javascript
// src/utils/generateLetterPrefixedId.js
import { v4 as uuid4 } from 'uuid';
function generateLetterPrefixedId() {
let id = '';
do {
// 取得新的 UUID 并截取前面部分转换成大写形式
id = uuid4().substring(0, 8).toUpperCase();
// 检查首字符是否为字母,如果不是则重复上述过程直到符合条件为止
} while (!/^[a-zA-Z]/.test(id));
return id;
}
```
这段逻辑通过正则表达式验证所得到的结果是否符合预期格式,如果不匹配就再次尝试生成直至获得合适的值。
最后还有一种场景是在数据发生变更的情况下才更新对应的唯一标识。此时可以在组件内部定义一个 watch 监听器用于监测目标属性的变化状态,一旦检测到变化即刻触发相应处理程序去修改关联的 UUID 字段[^4]:
```javascript
<script setup>
import { ref, watchEffect } from 'vue';
import { v4 as uuidv4 } from 'uuid';
const formData = reactive({
name: '',
email: ''
});
let uniqueIdentifier = ref('');
watchEffect(() => {
const dataString = JSON.stringify(formData);
uniqueIdentifier.value = calculateHash(dataString); // 这里的calculateHash应该被替换为你自己的哈希算法或者是简单的uuidv4()
});
</script>
<template>
<div>
<!-- 表单项 -->
<input type="text" v-model="formData.name">
<input type="email" v-model="formData.email">
<!-- 显示当前表单对应的数据指纹 -->
<p>Unique Identifier: {{ uniqueIdentifier }}</p>
</div>
</template>
```
在这个例子中,每当 `formData` 对象中的任何一个键值对发生了更改之后都会自动触发一次新的 UUID 计算操作,并把最新的结果赋给 `uniqueIdentifier` 属性显示出来。
阅读全文
相关推荐


















