色々あって面白かったのでメモしておく。 一応全部ブラウザ上の前提。
- CryptoAPIを使う
- 外部パッケージを使う
- URL: createObjectURLを使う
CryptoAPIを使う
使えるなら真っ先に考えるやつ。
MDN - Crypto: randomUUID() メソッド
外部パッケージを使う
ここら辺の有名なやつを持ってきて使う。
HTTPSじゃないとブラウザAPIは使えないのでそういう場合は便利かも。
さすがにrandomUUIDが使えない環境は少ないだろうし。
URL: createObjectURLを使う
知らなかったし想像もしなかったやつ。リンク先からの引用。
function uuid() { return URL.createObjectURL(new Blob()).slice(-36) }
マジで?と思って調べてみたらホントっぽい。