最新公告
  • 欢迎您光临起源地模板网,本站秉承服务宗旨 履行“站长”责任,销售只是起点 服务永无止境!立即加入钻石VIP
  • 从现在开始用 NanoID 会取代UUID

    正文概述 掘金(天行无忌)   2021-07-07   735

    如果你的项目有生成唯一 key 或者使用 uuid 的场合,那么从现在开始,请使用 NanoID。之前在文章《分享8个可以提高开发效率的JavaScript库》介绍过 NanoID 。NanoID 是一个创建唯一 key 的轻量级的脚本库,在过去有类似需求首先想到的是 uuid ,与其相比 NanoID 要小得多。

    const { nanoid } = require("nanoid");
    
    const key = nanoid();
    console.log(key); // U6XRwZsfcDuexQ7m55qdy
    

    从 npmjs.com 信息来看,NanoID 一周的下载量达到上千万,此外,NanoID 比 UUID 小了将近 7 岁,而且它的 GitHub 星数已经超过 UUID 了。下图是两个脚本库的趋势数据图:

    从现在开始用 NanoID 会取代UUID

    查看网站数据可以点击这里:www.npmtrends.com/nanoid-vs-u…。

    从上面的数据已经足以说明问题了,下面介绍一下 NanoID 的特点。

    体积小

    和 UUID 相比,NanoID 的大小要小大概 4.5 倍,压缩大小只有 108 字节,并且没有任何依赖关系。

    更安全

    在大部分随机生成器使用的是不安全的随机数 Math.random()。而 NanoID 使用 crypto module 。

    此外,NanoID 在 ID 生成器的实现过程中使用了自己的称为统一算法的算法,而不是使用随机的字母表。

    更高效

    NanoID 比 UUID 快 60%,UUID 的字符表使用 36 个不同字符,而 NanoID 只使用了 21 个字符。

    此外,NanoID 还支持 14 种不同的编程语言,它们分别是:

    兼容性

    NanoID 还支持 PouchDB、CouchDB WebWorkers、Rollup 以及 React 和 Reach-Native 等库。

    灵活性

    NanoID 的另一个特点是灵活性,它允许开发人员使用自定义字母表。可以更改文字或 id 的大小,如下所示:

    const { customAlphabet } = require("nanoid");
    const nanoid = customAlphabet("devpointDEV123456789", 6);
    const nid = nanoid();
    console.log(nid); // 4it6tp
    

    局限性

    根据 StackOverflow 中的许多专家意见,使用 NanoID 没有明显的缺点或限制。

    可读性方面(不便于记忆)应该算是 NanoID 的主要缺点,另外,NanoID 不是连续的,因此不能作为数据库表的主键。

    总结

    NanoID正逐渐成为Javascript中最流行的唯一id生成器,大多数开发人员更愿意选择它而不是 UUID 。在考虑到它的体积小、URL 友好性、安全性和高效,因此建议从现在开始在项目中使用 NanoID 取代UUID 。


    起源地下载网 » 从现在开始用 NanoID 会取代UUID

    常见问题FAQ

    免费下载或者VIP会员专享资源能否直接商用?
    本站所有资源版权均属于原作者所有,这里所提供资源均只能用于参考学习用,请勿直接商用。若由于商用引起版权纠纷,一切责任均由使用者承担。更多说明请参考 VIP介绍。
    提示下载完但解压或打开不了?
    最常见的情况是下载不完整: 可对比下载完压缩包的与网盘上的容量,若小于网盘提示的容量则是这个原因。这是浏览器下载的bug,建议用百度网盘软件或迅雷下载。若排除这种情况,可在对应资源底部留言,或 联络我们.。
    找不到素材资源介绍文章里的示例图片?
    对于PPT,KEY,Mockups,APP,网页模版等类型的素材,文章内用于介绍的图片通常并不包含在对应可供下载素材包内。这些相关商业图片需另外购买,且本站不负责(也没有办法)找到出处。 同样地一些字体文件也是这种情况,但部分素材会在素材包内有一份字体下载链接清单。
    模板不会安装或需要功能定制以及二次开发?
    请QQ联系我们

    发表评论

    还没有评论,快来抢沙发吧!

    如需帝国cms功能定制以及二次开发请联系我们

    联系作者

    请选择支付方式

    ×
    迅虎支付宝
    迅虎微信
    支付宝当面付
    余额支付
    ×
    微信扫码支付 0 元