Radash一款JavaScript最新的实用工具库,Lodash的平替!

这篇具有很好参考价值的文章主要介绍了Radash一款JavaScript最新的实用工具库,Lodash的平替!。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一说lodash应该大部分前端同学都知道吧,陪伴我们好多年的JavaScript工具库,但是自从 ES6 出现后就慢慢退出前端人的视线,能ES6写的代码绝对不会用Lodash,也不是完全不用,就是用的少了。


Lodash 的痛点

看过Lodash源码的都知道,都是ES5的各种封装,写的很繁琐各种处理,Lodash 源码的学习成本真的很高,ES6出现之后就彻底绑不住了,ES6一个符号就能表示的,Lodash还得去传参数啥的,可读性还不高

最常见的比如说:

访问嵌套对象属性时,能够避免因为中间某个属性不存在而导致的错误,Lodash使用_.get 函数

const user = {
  profile: {
    address: {
      street: "123 Main St",
      city: "Wonderland"
    }
  }
};

// ES6 可选链  ?.
const city = user?.profile?.address?.city; // "Wonderland" 或 undefined
// ES6 空值合并 ??
const city2 = user?.profile?.address?.city ?? "Default City"; // "Wonderland" 或 "Default City"

// Lodash的_.get
const city3 = _.get(user, 'profile.address.city', 'Default City'); // "Wonderland" 或 "Default City"

不知道es6那俩特性的这里简单说一下:

ES6 可选链
可选链允许你安全地访问深层嵌套的对象属性,即使某些中间属性不存在,也不会抛出错误。这是通过在属性访问操作中使用问号(?.)来实现的。

ES6 空值合并
空值合并运算符(??)是一个逻辑运算符,它在左侧的操作数为null或undefined时,返回右侧的操作数,否则返回左侧的操作数。

进入正题–Radash

Radash 是一个新兴的 JavaScript 实用工具库,它被设计为“新一代的 Lodash”,并且在 GitHub 上拥有较高的星标数和稳定的下载量。现代化的设计和对TypeScript的原生支持

特点

  • 零依赖: Radash 是一个零依赖的工具库,这意味着它不依赖于任何第三方库。这样的设计使得 Radash 更加轻量级,项目中使用 Radash 时,只需要加载它本身,无需加载额外的依赖。

  • 对TypeScript的原生支持: Radash 完全使用 TypeScript 编写,这为使用 Radash 的开发者提供了准确的类型定义。这样的设计使得在 TypeScript 项目中使用 Radash 变得更加安全和方便,同时也减少了类型错误的可能性。

  • 现代化功能: Radash 去除了 Lodash 中一些过时的函数,并引入了许多新的实用功能。这些新功能旨在解决现代 JavaScript 中的问题,同时也全面支持 ES6+ 的新特性。

  • 易于理解和维护: Radash 的源代码易于理解,对新手友好。源代码的维护以新手的可理解性为首要任务,这使得开发者更容易学习和使用 Radash 的 API。

  • 提供实用的工具函数: Radash 提供了 90+ 个实用函数,涵盖了数组、对象、字符串、排序等多个方面的操作。这些函数旨在解决 JavaScript 中的常见问题,同时提供了一些在 Lodash 中没有的新颖功能。

  • 源码可读性高: Radash 的源码可读性高,这使得开发者可以更容易地理解每个函数的工作原理。对于一些只需要特定功能的情况,开发者甚至可以直接从 GitHub 复制相应的函数源码到自己的项目中使用。

  • 性能优化: Radash 在设计时考虑了性能优化,一些函数的性能甚至超过了 Lodash。

  • 社区支持与活跃: Radash 在社区中获得了一定的关注和支持,许多开发者对它的现代化设计和 TypeScript 友好性表示赞赏。随着时间的推移,Radash 的社区可能会继续增长,提供更多的资源和支持。

radash,javascript,javascript,ecmascript,Radash,JS工具库

举例几个常用的api

  • list() - 创建数字序列

list() 函数可以动态地生成具有特定项的列表,根据提供的参数进行灵活调整。

import { list } from 'radash';

const numbers = list(1, 5); // 创建从 1 到 5 的数字序列
console.log(numbers); // 输出: [1, 2, 3, 4, 5]
  • retry() - 重试失败的异步操作

retry() 函数用于重试失败的异步操作,直到成功或达到最大重试次数。

import { retry } from 'radash';

async function fetchData() {
  try {
    const response = await fetch('api/data');
    return response.json();
  } catch (error) {
    throw error;
  }
}

// 尝试最多 3 次,每次失败后等待 2 秒
const data = await retry({ times: 3, delay: 2000 }, fetchData);
console.log(data);
  • counting() - 统计数组中元素的数量

counting() 函数用于统计类数组集合中各类元素的数量。

import { counting } from 'radash';

const items = ['apple', 'banana', 'apple', 'orange', 'banana', 'apple'];
const counts = counting(items, item => item);
console.log(counts); // 输出: { apple: 3, banana: 2, orange: 1 }
  • unique() - 从数组中提取唯一元素

unique() 函数从输入数组中提取唯一的元素。

import { unique } from 'radash';

const array = [1, 2, 2, 3, 4, 4, 5];
const uniqueArray = unique(array);
console.log(uniqueArray); // 输出: [1, 2, 3, 4, 5]
  • 类型检查函数

Radash 提供了一系列类型检查函数,如 isArray()、isString()、isNumber() 等,用于检测变量的数据类型。文章来源地址https://www.toymoban.com/news/detail-860935.html

import { isArray, isString, isNumber } from 'radash';

const myArray = [1, 2, 3];
const myString = 'Hello, Radash!';
const myNumber = 42;

console.log(isArray(myArray)); // 输出: true
console.log(isString(myString)); // 输出: true
console.log(isNumber(myNumber)); // 输出: true

到了这里,关于Radash一款JavaScript最新的实用工具库,Lodash的平替!的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • lodash已死?radash最全使用介绍(附源码说明)—— Array方法篇(3)

    我们已经介绍了radash的相关信息和部分Array相关方法,详情可前往主页查看; 本篇我们继续介绍radash中Array的相关方法; 下期我们将介绍解析radash中剩余的 Array相关方法,并整理出Array方法使用目录,包括 文章说明 和 脑图说明 。 使用说明 参数:迭代次数、每次迭代调用的

    2024年04月12日
    浏览(34)
  • 无极低代码,免费工具在线实用工具分享

      在当今数字化的时代,我们需要尽可能地减少手动操作,提高工作效率。这就是为什么我们需要一些在线工具来帮助我们完成一些繁琐的任务。以下是一些无极低代码网集成的在线工具,可以帮助您更快、更轻松地完成任务。 项目周期计算 :可以帮助您计算项目周期,以

    2024年02月16日
    浏览(50)
  • Linux性能优化--实用工具:性能工具助手

    本章介绍一些在Linux系统上可用的实用程序,它们能够加强性能工具的有效性和可用性。实用工具本身不是性能工具,但是当它们与性能工具一起使用时,它们可以帮助完成如下功能:自动执行繁琐的任务、分析性能统计数据,以及创建性能工具友好的应用程序。 阅读本章后

    2024年02月07日
    浏览(40)
  • 推荐九大类实用的AI工具网站 | 最实用的AI工具网站推荐大全(建议收藏!!!)

    随着AI技术的快速发展,越来越多的网站开始提供AI工具,以帮助用户解决日常工作和生活中的问题。在这篇博客中,将为大家推荐一些实用的AI工具网站。 Write With Transformer(https://transformer.huggingface.co/):基于GPT系列模型的自动写作工具,可以帮助用户完成各种写作任务。

    2024年02月08日
    浏览(52)
  • 编程实用工具推荐

    Snipaste,一款简单强大的截图贴图利器 下载地址:Snipaste Codelf通过搜索在线开源平台Github, Bitbucket, Google Code, Codeplex, Sourceforge, Fedora Projec的项目源码,帮开发者从中找出已有的匹配的变量名。这个搜索服务支持直接搜索中文。codeif支持中文查询,输入中文意思,codeif可

    2024年02月12日
    浏览(36)
  • [Python] 缓存实用工具

    cachetools 是一个 Python 库,提供了用于缓存的实用工具,包括各种缓存算法和数据结构,如 LRU (最近最少使用)缓存、 TTL (时间到期)缓存等。使用 cachetools 可以轻松地在 Python 应用程序中实现缓存功能,提高性能并减少对重复计算的需求。 以下是一个简单示例代码,演示

    2024年03月09日
    浏览(34)
  • 【实用工具】vim常用命令

    快速移动(上下左右箭头可替代) 在本行操作 跨行移动光标 复制,粘贴,删除(d,y,p) 撤销操作和恢复 快速注释 取消注释 参考链接: https://zhuanlan.zhihu.com/p/68111471 https://cloud.tencent.com/developer/article/1463765

    2024年02月03日
    浏览(26)
  • 【工具篇】Firmwalker车联网安全实用小工具介绍

    前言 firmwalker这个小工具在工作中也一直在用,正好领导说要写一篇这个工具的分析说明文章,经过询问可以发表博客。由于一直在用,所以末尾优劣势部分存在一些主观想法。 编写不易,如果能够帮助到你,希望能够点赞收藏加关注哦Thanks♪(・ω・)ノ PS:文章末尾有联系方

    2024年01月21日
    浏览(46)
  • ffmpeg工具实用命令

    说明:ffmpeg是一款非常好用的媒体操作工具,包含了许多对于视频、音频的操作,有些视频播放器,实际上就是套了一个ffmpeg的壳子。本文介绍ffmpeg的使用以及一些较为实用的命令。 ffmpeg是命令行操作的,不需要安装,可在官网下载压缩包; 解压到一个没有中文、没有数字

    2024年02月13日
    浏览(22)
  • 分享一些实用的工具

    网址:  JavaScript mapping library: amCharts 5 https://www.amcharts.com/javascript-maps/ Demo地址: Chart Demos - amCharts https://www.amcharts.com/demos/#maps  他分为amCharts4和5,5看起来更完善。很多都是我们平时看到的能实现的效果,比如航线图、业务分布图、数据分析、股票k线图等等。设计师可以用来

    2024年04月28日
    浏览(31)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包