UUID是软件开发中最常用的通用标识符之一。然而,在过去几年中,其他竞争对手对其存在提出了挑战。其中,NanoID是UUID的主要竞争对手之一。因此,在本文中,我们将详细介绍NanoID的功能、亮点和局限性,以便我们更好地了解何时使用它。了解NanoID以及如何使用它在JavaScript中生成UUID或NanoID非常简单。它们都有相应的npm包来帮助我们实现生成。我们需要做的就是运行npminanoid命令来安装NanoIDNPM库并在我们的项目中使用它:import{nanoid}from'nanoid';model.id=nanoid();你知道NanoID的每周NPM下载量1175.4万,运行速度比UUID快60%吗?此外,NanoID比UUID年轻了将近7年,并且它已经拥有比UUID更多的GitHubstar。下图是两者的npm趋势对比,可以看出NanoID的上升趋势与UUID的平稳进展形成鲜明对比。https://www.npmtrends.com/nan...我希望这些数字能说服您尝试NanoID。但是,这两者之间的主要区别很简单。它归结为用于键的字母表。由于NanoID使用比UUID更大的字母表,因此较短的ID可以用于与较长的UUID相同的目的。1.NanoID只有108字节那么大与UUID不同,NanoID的大小小了4.5倍,并且没有任何依赖关系。此外,大小限制已用于将大小再减少35%。大小缩减直接影响数据的大小。例如,使用NanoID的对象小巧紧凑,可用于数据传输和存储。这些数字随着应用程序的增长而变得明显。2.更安全在大多数随机生成器中,它们使用不安全的Math.random()。但是,NanoID使用加密模块和WebCryptoAPI,这意味着NanoID更安全。此外,NanoID在ID生成器的实现中使用了自己的算法,称为统一算法,而不是使用“随机%字母表”随机%字母表。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、PHPNim、PerlDictionary的Python、Ruby、Rust、Swift4。兼容性它还支持PouchDB、CouchDBWebWorkers、Rollup以及React和Reach-Native等库。我们可以使用npxnanoid来获取终端中的唯一ID。在JavaScript中使用NanoID的唯一要求是首先安装NodeJS。此外,我们还可以在Redux工具包中找到NanoID,并将其用于其他用例,如下所示;import{nanoid}from'@reduxjs/toolkit'console.log(nanoid())//'dgPXxUz_6fWIQBD8XmiSy'5.自定义字母表NanoID的另一个现有功能是它允许开发人员使用自定义字母表。我们可以像这样更改文本或id的大小:import{customAlphabet}from'nanoid';constnanoid=customAlphabet('ABCDEF1234567890',12);model.id=nanoid();在上面的例子中,我将自定义字母表定义为ABCDEF1234567890,Id的大小定义为12。6.无第三方依赖由于NanoID不依赖任何第三方依赖,所以可以变得更加稳定并随着时间的推移自主。从长远来看,这有助于优化包的大小,并使其不易出现依赖性问题。局限性和未来关注点据StackOverflow的许多专家称,使用NanoID没有明显的缺点或局限性。非人类可读性是许多开发人员在NanoID中看到的一个主要缺点,因为它使调试变得更加困难。但是,NanoID比UUID更短且更易读。另外,如果使用NanoID作为表的主键,如果使用与聚簇索引相同的列,也会出现问题。这是因为NanoID不是连续的。未来......NanoID正在慢慢成为最流行的JavaScript唯一ID生成器,大多数开发人员更愿意选择它而不是UUID。来源:https://www.npmjs.com/package...上述基准测试显示了NanoID与其他主要ID生成器相比的性能。使用默认字母表每秒生成超过220万个唯一ID,使用自定义字母表每秒生成超过180万个唯一ID。根据我使用UUID和NanoID的经验,我建议在未来的任何项目中使用NanoID而不是UUID,因为它体积小、URL友好、安全和速度快。因此,我邀请您在下一个项目中试用NanoID,并在评论部分与其他人分享您的想法。原文地址:为什么NanoID会取代UUID?原作者:CharukaHerath翻译自:掘金翻译项目本文永久链接:https://github.com/xitu/gold-...2022最新版本)2.太棒了!Java协程来了。..3.SpringBoot2.x教程,太全面了!4.不要用爆破爆满画面,试试装饰者模式,这才是优雅的方式!!5.《Java开发手册(嵩山版)》最新发布,赶快下载吧!感觉不错,别忘了点赞+转发!
