大家好,我是「前端实验室」
爱分享的了不起~
Lodash这个库大家想必都知道,今天就给大家介绍一个声称比lodash更轻量、全面且易于理解的前端工具库——Radash
Radash
是一个强大的零依赖的前端工具库,号称lodash plus版本,比之更新、更小、更全面、源码更易于理解。如果你使用过lodash,那么你使用radash将没有任何门槛。
npm安装
npm install radash --save
引入使用
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
函数允许您包装一个函数,将其转换为错误优先函数。适用于异步和同步函数。
import { tryit } from 'radash'
const [err, user] = await tryit(api.users.find)(userId)
_.retry
函数允许您运行一个异步函数,并在失败时自动重试。给定要运行的异步函数、可选的最大重试次数 (r) 和可选的重试之间的延迟毫秒数 (d),给定的异步函数将被调用,重试 r 次,并在重试之间等待 d 毫秒。
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 用来从对象中选取所需的属性
import { pick } from 'radash'
const fish = {
name: 'Bass',
weight: 8,
source: 'lake',
barckish: false
}
pick(fish, ['name', 'source']) // => { name, source }
uid 方法用于生成唯一标识符。所以你可以不用在项目中单独引入 nanoid 第三方依赖
import { uid } from 'radash'
uid(7) // => UaOKdlW
uid(20, '*') // => dyJdbC*NsEgcnGjTHS
Radash
提供线上的 Playground
供开发人员测试所有的方法。点击链接打开Playground页面,在编辑器里输入内容,点击 run 按钮,即可得出结果
Radash 是一个全新 JS 工具库,大小只有 Lodash 的五分之一,而且全面使用Typescript编写