第四章 响应式编程

响应式编程是一种声明式编程。例如,Excel的单元格就是一个例子。单元格可以包含字面值或类似=B1+C1的公式,而包含公式的单元格的值会依据其他单元格的值的变化而变化。因此,响应式编程的重点是考虑数据流的变化和传播。

概述

一个函数 $f(x)=x^2$ ,它可以由下图表示。

Code could not finish, this are some reasons why this happen. - Plot name not defined. The first parameter of the shortcode is the name. - There is a syntax error. check browser console.

也可以由下图表示。

----1----2----3----4----|

> $f(x)=x^2$

----A-----B-----C--D-----|
A := 1
B := 4
C := 9
D := 16

一个是二维平面空间上的点,一个是一维时间上的事件。

计算机程序可以抽象成数据的流动。每次数据变换都是一个函数,可以视为一个"反应堆"(reactor)。数据在反应堆之间多次传递之后,就完成了从输入到输出的整个过程。

在数据流动过程中,有两种操作:

  • 数据流动的形态和方向
  • 数据本身的变化

目前,响应式编程的函数库或框架解决的是前者。例如将两个流合成一个流,例如将一个流变为另一个流。