前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >卧槽!Lodash凉了,这个库竟比它还好用...

卧槽!Lodash凉了,这个库竟比它还好用...

作者头像
程序员老鱼
发布2024-07-12 14:30:32
1160
发布2024-07-12 14:30:32
举报
文章被收录于专栏:前端实验室

大家好,我是「前端实验室」爱分享的了不起~

Lodash这个库大家想必都知道,今天就给大家介绍一个声称比lodash更轻量、全面且易于理解的前端工具库——Radash

Radash

Radash是一个强大的零依赖的前端工具库,号称lodash plus版本,比之更新、更小、更全面、源码更易于理解。如果你使用过lodash,那么你使用radash将没有任何门槛。

特点

  • 零依赖:radash不依赖任何第三方库,仅在自己的源码里面去实现功能,所以非常的轻量。;
  • Typescript编写:使用起来更安全,不用担心变量类型问题;
  • 全面支持es6+的新特性:它去除了lodash身上一些过时的方法(这些方法能够使用es6+新特性快速简单实现);
  • 方法更全面:包含数组相关、对象相关、排序相关、字符串相关、优化相关…,几乎能满足你能想到的前端工具方法。
  • 源码更易于理解:我们甚至可以说radash的某些方法的实现时直接而暴力的。

安装使用

npm安装

代码语言:javascript
复制
npm install radash --save

引入使用

代码语言:javascript
复制
import * as _ from 'radash'
const gods = [{
  name: 'Ra',
  power: 'sun',
  rank: 100,
  culture: 'egypt'
}, {
  name: 'Loki',
  power: 'tricks',
  rank: 72,
  culture: 'norse'
}, {
  name: 'Zeus',
  power: 'lightning',
  rank: 96,
  culture: 'greek'
}]

_.max(gods, g => g.rank) // => ra
_.sum(gods, g => g.rank) // => 268
_.fork(gods, g => g.culture === 'norse') // => [[loki], [ra, zeus]]
_.sort(gods, g => g.rank) // => [ra, zeus, loki]
_.boil(gods, (a, b) => a.rank > b.rank ? a : b) // => ra

_.objectify(
  gods, 
  g => g.name.toLowerCase(), 
  g => _.pick(g, ['power', 'rank', 'culture'])
) // => { ra, zeus, loki }

const godName = _.get(gods, g => g[0].name)

const [err, god] = await _.try(api.gods.findByName)(godName)

const allGods = await _.map(gods, async ({ name }) => {
  return api.gods.findByName(name)
})

常用方法

tryit方法

tryit 函数允许您包装一个函数,将其转换为错误优先函数。适用于异步和同步函数。

代码语言:javascript
复制
import { tryit } from 'radash'

const [err, user] = await tryit(api.users.find)(userId)
retry方法

_.retry 函数允许您运行一个异步函数,并在失败时自动重试。给定要运行的异步函数、可选的最大重试次数 (r) 和可选的重试之间的延迟毫秒数 (d),给定的异步函数将被调用,重试 r 次,并在重试之间等待 d 毫秒。

代码语言:javascript
复制
import { retry } from 'radash'

await retry({}, api.users.list)
await retry({ times: 10 }, api.users.list)
await retry({ times: 2, delay: 1000 }, api.users.list)

// exponential backoff
await retry({ backoff: i => 10**i }, api.users.list)
pick方法

pick 用来从对象中选取所需的属性

代码语言:javascript
复制
import { pick } from 'radash'

const fish = {
  name: 'Bass',
  weight: 8,
  source: 'lake',
  barckish: false
}

pick(fish, ['name', 'source']) // => { name, source }

uid

uid 方法用于生成唯一标识符。所以你可以不用在项目中单独引入 nanoid 第三方依赖

代码语言:javascript
复制
import { uid } from 'radash'

uid(7) // => UaOKdlW
uid(20, '*') // => dyJdbC*NsEgcnGjTHS

Radash 提供线上的 Playground 供开发人员测试所有的方法。点击链接打开Playground页面,在编辑器里输入内容,点击 run 按钮,即可得出结果

Radash 是一个全新 JS 工具库,大小只有 Lodash 的五分之一,而且全面使用Typescript编写

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2024-07-10,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 前端实验室 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • Radash
    • 特点
      • 安装使用
        • 常用方法
          • tryit方法
          • retry方法
          • pick方法
          • uid
      领券
      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档