Con la programación Reactiva, creamos toda nuestra aplicación definiendo los diversos flujos y las operaciones que se realizan en esos flujos.
Mientras que eso puede ser fácil de entender en el papel, ¿cómo nos entrenamos realmente para pensar y programar de forma reactiva?
Intentemos convertir una función básica imperativa en una reactiva.
123456 vejiga(a, b){retorno a + b;}c = vejiga(10,20);c = vejiga(10,40);
javascript
Como se muestra arriba, tenemos algunas variables de estado a, b y c. También hay una función llamada sumador.
Para sumar a y b juntos y actualizar el estado de la variable c para que sea su suma, llamamos al sumador de funciones.
Después de algún tiempo, el valor de la variable b se actualiza a 50.
Ahora, hay un par de puntos a notar aquí;1. Necesitamos encontrar una forma de saber que la variable b se ha actualizado, lo que en sí mismo es bastante difícil de averiguar.2. También necesitamos saber que ya que la variable b ha cambiado, ahora tenemos que recomponer la variable c.
El programa anterior podría ser demasiado simplista. Pero cuando lo extendemos a las aplicaciones web, nos damos cuenta de que las entradas se actualizan constantemente con el tiempo a través de un clic del usuario en algún lugar, eventos del ratón, eventos de la red, etc.
La mayor parte de nuestra lógica de aplicación se basa en averiguar qué métodos hay que invocar para cada uno de estos cambios que se producen en nuestras entradas.
Cuando trabajamos con programación reactiva, no pensamos realmente en términos de variables, sino que pensamos en términos de flujos y en cómo los diversos flujos están conectados entre sí.
Así que, en nuestro ejemplo, convertimos a, b y c en arroyos.
Por lo tanto, a ya no es un valor individual en ningún momento. En su lugar, es una corriente de valores a lo largo del tiempo.
adder puede pensarse como una operación que conecta la salida de ambas corrientes a y b a la entrada de c.
Si algunos números son ahora empujados a las corrientes a y b, el sumador es invocado automáticamente. Calcula el total y empuja el resultado a la corriente c.
Si, por ejemplo, c está también conectada a alguna otra corriente de alguna otra operación (por ejemplo, multiplicador), en ese caso, incluso la operación multiplicadora se invocaría automáticamente.
Así, podemos ver que, en la programación reactiva, no invocamos funciones. En su lugar, sólo definimos cómo nuestra aplicación está conectada y luego empezamos a empujar valores a diferentes corrientes. Las distintas operaciones se encargarán automáticamente de todo para nuestra aplicación.
Por lo tanto, si el valor de la variable b cambia, todo lo que necesitamos hacer es empujar este nuevo valor a la corriente b y la operación sumadora se encargaría de las tareas por nosotros.