你就是函数响应式编程(frp)啊?!【附 rxjs 实战】

前言
什么是 FRP?
FRP 的全称是 Functional Reactive Programming,中文翻译为函数响应式编程。
对于函数式编程,我们并不陌生,在我的 JS 专栏中可以找到许多相关的文章。
这里不妨先对函数式编程的特性做一个简要的回顾:
- 函数是一等公民(这意味着可以将函数赋值给变量或存储在数据结构中,也可以将函数作为其他函数的参数或返回值)。
- 高阶函数(接受函数作为参数或返回一个函数的函数)。
- 没有隐式的输入和输出(输入通过函数参数传递,输出通过函数返回值进行返回)。
- 值的不变性(在程序状态改变时,不直接修改当前数据,而是创建并追踪一个新数据)。
- 声明式编程风格,而不是命令式编程风格(关注“是什么”,而不是“做什么”)。
用代码举一个简单的例子:
// 命令式编程
function factorial1(x) {
let result = 1;
for (let i = 1; i <= x; i++) {
result *= i;
}
return result;
}
// 声明式编程
const factorial2 = x => Array.from({length: x}, (_, i) => i + 1).reduce((acc, curr) => acc * curr, 1);
在这段代码中,factorial1 是一个命令式编程的示例,而 factorial2 则展示了声明式编程的风格。










