获取唯一id的三种方法

uuid

1
2
3
4
5
6
7
8
9
10
11
const UUID = (len = 32) => {
return "xxxxxxxxxxxx4xxxyxxxxxxxxxxxxxxx"
.replace(/[xy]/g, function replace(c) {
/* eslint-disable no-bitwise */
const r = (Math.random() * 16) | 0;
const v = c === "x" ? r : (r & 0x3) | 0x8;

return v.toString(16);
})
.substring(0, len);
};

nanoid

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
const nanoid = (t = 21) => {
let e = "",
r = crypto.getRandomValues(new Uint8Array(t));
for (; t--; ) {
let n = 63 & r[t];
e +=
n < 36
? n.toString(36)
: n < 62
? (n - 26).toString(36).toUpperCase()
: n < 63
? "_"
: "-";
}
return e;
};

原生方法

1
const id = URL.createObjectURL(new Blob()).substr(-36)

评论