UUID
UUID 通用唯一識別碼(Universally Unique Identifier)是用於計算機體系中以識別信息的一個128位標識符。
UUID按照標準方法生成時,在實際應用中具有唯一性,且不依賴中央機構的註冊和分配。UUID重複的概率接近零,可以忽略不計。
因此,UUID 的應用非常普遍,被廣泛應用於需要對數據記錄、資源和實體進行唯一標識的眾多應用中:數據庫、資源標識符、會話和事務標識符、對象存儲等。
前端可以使用 uuidjs 庫實現:https://github.com/uuidjs/uuid
nanoid
nanoid 是 UUID 的有力競爭者,它同樣可以生成唯一的標識字符串。
與 UUID 相比,它使用更大的字母表,這樣一來它生成的字符串長度更短,只有21個字符。
並且它的包體積只有UUID的1/4。nanoid 大有取代 UUID 的趨勢。
另外,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格式,是零依賴方案的首選。
詳情見 MDN:https://developer.mozilla.org/zh-CN/docs/Web/API/Crypto/randomUUID