前言
在react中,随着项目的复杂程度,会引入redux进行管理状态。redux强调使用“纯函数”来更新state。因此衍生了很多相关纯函数的库。比如:
1 | Immutable.js |
Immutable.js
官网:http://facebook.github.io/immutable-js/docs/#/ ,来自facebook,因为react也是fb的作品。所以它是官方推荐的库。
Ramda.js
纯函数,叫“λ”,也叫:拉姆达函数。
中文的官网:http://ramda.cn/
它也是函数式编程库
Ramda 主要特性:
- Ramda 强调更加纯粹的函数式风格。
- Ramda 函数本身都是自动柯里化的。
用起来比较麻烦
lodash.js
这个库是目前最流行的node模块之一,可以到npmjs官网上看,基本上排行榜都是第一。
官网:https://lodash.com/
中文的API网站:http://www.css88.com/doc/lodash/
实际上,underscore这个库已经在“函数库工具”里面输给lodash。
- lodash中的函数式编程。被操作元素写在最后一个参数!
用于redux
lodash中有一个子包,叫做“FP”FP是functional programing 函数式编程的意思。这个库一般可以用来结合redux使用。
结束
函数式编程,本质上是新的编程范式。是一种趋势。上面这些库,不仅仅适合redux项目。适合任何强调使用函数式编程的项目。