UUID正在被NanoID取代?
UUID 是軟件開發(fā)中最常用的通用標識符之一。然而,在過去的幾年里,其他的競品挑戰(zhàn)了它的存在。
其中,NanoID 是 UUID 的主要競爭對手之一。
因此,在本文中,我們將展開討論 NanoID 的功能、它的亮點以及它的局限性,以便讓我們更好地了解何時使用它。
了解 NanoID 及其用法
npm i nanoid 命令安裝 NanoID NPM 庫 并在我們的項目中使用它:import { nanoid } from 'nanoid';
model.id = nanoid();
“
你是否知道 NanoID 每周的 NPM 下載量超過 1175.4 萬,并且運行起來比 UUID 快 60%?
”

https://www.npmtrends.com/nanoid-vs-uuid
我希望這些數(shù)字已經(jīng)說服你去嘗試 NanoID。
但是,這兩者之間的主要區(qū)別很簡單。它歸結(jié)為鍵使用的字母表。
1. NanoID 只有 108 個字節(jié)那么大
2. 更安全
Math.random()。但是,NanoID 使用 crypto module 和 Web Crypto API,意味著 NanoID 更安全。random % alphabet。3. 它既快速又緊湊
NanoID 比 UUID 快 60%。與 UUID 字母表中的 36 個字符不同,NanoID 只有 21 個字符。
0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ_abcdefghijklmnopqrstuvwxyz-
此外,NanoID 支持 14 種不同的編程語言,它們分別是:
C#、C++、Clojure 和 ClojureScript、Crystal、Dart & Flutter、Deno、Go、Elixir、Haskell、Janet、Java、Nim、Perl、PHP、帶字典的 Python、Ruby、Rust、Swift
4. 兼容性
npx nanoid 在終端中獲得唯一 ID。在 JavaScript 中使用 NanoID 唯一的要求是要先安裝 NodeJS。此外,我們還可以在 Redux toolkit 中找到 NanoID,并將其用于其他用例,如下所示;
import { nanoid } from ‘@reduxjs/toolkit’
console.log(nanoid()) //‘dgPXxUz_6fWIQBD8XmiSy’
5. 自定義字母
import { customAlphabet } from 'nanoid';
const nanoid = customAlphabet('ABCDEF1234567890', 12);
model.id = nanoid();
在上面的示例中,我將自定義字母表定義為 ABCDEF1234567890,并將 Id 的大小定義為 12。另外,搜索公眾號互聯(lián)網(wǎng)架構(gòu)師后臺回復“面試”,獲取一份驚喜禮包。
6. 沒有第三方依賴
局限性和未來重點
在將來……

“
使用默認字母表每秒可生成超過 220 萬個唯一 ID,使用自定義字母表每秒可生成超過 180 萬個唯一 ID。
”
根據(jù)我使用 UUID 和 NanoID 的經(jīng)驗,考慮到它的小尺寸、URL 友好性、安全性和速度,我建議在任何未來的項目中使用 NanoID 而不是 UUID。
因此,我邀請您在下一個項目中試用 NanoID,并在評論部分與其他人分享您的想法。
原文地址:Why is NanoID Replacing UUID?
原文作者:Charuka Herath
譯文出自:掘金翻譯計劃
本文永久鏈接:https://github.com/xitu/gold-miner/blob/master/article/2021/why-is-nanoid-replacing-uuid.md
譯者:霜羽 Hoarfroster
-End-

