簡介
nanoid是一個小巧、安全、URL友好、唯一的JS字符串ID生成器
// 目前github的star是15.9K
github地址:https://github.com/ai/nanoid
特點
- 小巧,130 bytes (已壓縮和 gzipped)。 沒有依賴。 Size Limit 控制大小。
- 快速,它比 UUID 快 60%。
- 安全,它使用加密的強隨機 API,可以在集群中使用。
- 緊湊,它使用比 UUID(A-Za-z0-9_-)更大的字母表。 因此,ID 大小從36個符號減少到21個符號。
- 易用,Nano ID 已被移植到 20種編程語言。
與 UUID 的比較
Nano ID 與 UUID v4 (基于隨機) 相當。 它們在 ID 中有相似數量的隨機位 (Nano ID 為126,UUID 為122),因此它們的沖突概率相似::
要想有十億分之一的重復機會, 必須產生103萬億個版本4的ID.
Nano ID 和 UUID v4之間有三個主要區別:
- Nano ID 使用更大的字母表,所以類似數量的隨機位 被包裝在21個符號中,而不是36個。
- Nano ID 代碼比 uuid/v4 包少 4倍: 130字節而不是483字節.
- 由于內存分配的技巧,Nano ID 比 UUID 快 60%。
使用教程
// 安裝
npm i nanoid -S
// 引入
import { nanoid } from 'nanoid'
// 簡單隨機生成
nanoid() //=> "V1StGXR8_Z5jdHi6B-myT"
// 指定生成長度
nanoid(10) //=> "IRFa-VaY2b"
// 自定義用于生成id的字符和大小
import { customAlphabet } from 'nanoid'
const nanoid = customAlphabet('1234567890abcdefg', 10)
nanoid() //=> "4f90d13a42"
是不是非常的強大好用
覺得效果不錯的請幫忙加個關注點個贊,經常分享前端實用開發技巧