博客 / 詳情

返回

前端 UUID 生成 3 種方案

UUID

UUID 通用唯一識別碼(Universally Unique Identifier)是用於計算機體系中以識別信息的一個128位標識符。

UUID按照標準方法生成時,在實際應用中具有唯一性,且不依賴中央機構的註冊和分配。UUID重複的概率接近零,可以忽略不計。

因此,UUID 的應用非常普遍,被廣泛應用於需要對數據記錄、資源和實體進行唯一標識的眾多應用中:數據庫、資源標識符、會話和事務標識符、對象存儲等。

前端可以使用 uuidjs 庫實現:https://github.com/uuidjs/uuid

Alt text

nanoid

nanoid 是 UUID 的有力競爭者,它同樣可以生成唯一的標識字符串。

與 UUID 相比,它使用更大的字母表,這樣一來它生成的字符串長度更短,只有21個字符。

並且它的包體積只有UUID的1/4。nanoid 大有取代 UUID 的趨勢。

Alt text

另外,nanoid 可以自定義字母表和ID長度,這給用户提供了更多靈活性。

import { customAlphabet } from 'nanoid'
const nanoid = customAlphabet('1234567890abcdef', 10)
model.id = nanoid() //=> "4f90d13a42"

更多信息見 NPM:https://www.npmjs.com/package/nanoid

Crypto.randomUUID

事實上,如果你的項目僅面向現代瀏覽器:原生 crypto.randomUUID() 是最佳選擇。作為瀏覽器原生API,它無需引入任何庫,兼容性好,且符合標準UUID格式,是零依賴方案的首選。

Alt text

詳情見 MDN:https://developer.mozilla.org/zh-CN/docs/Web/API/Crypto/randomUUID

user avatar
0 位用戶收藏了這個故事!

發佈 評論

Some HTML is okay.