Bueno, suena bastante para solo una pulsación de tecla. Y aquí las señales pueden ser útiles. Entonces, en este caso, ¿qué podría ser una señal? La señal podría ser en realidad texto. Es como un valor, valores estáticos, con los que podemos trabajar en cualquier momento, así como el hecho de que cambia con el tiempo. Y tal vez un poco de lo que se trata.
Es un diagrama clásico. Nada especial aquí. En el lado izquierdo, solo tenemos un valor. Bien, podemos, cuál es el valor, podemos acceder a él en cualquier momento de manera sincrónica. En el lado opuesto, tenemos una especie de observable, solo un flujo de eventos, como sin el tipo de valor estático, sino más bien necesitas escucharlo. Y la señal es algo intermedio, ante todo. Usualmente, aquí es como un cubo. Hay un valor al que puedes acceder en cualquier momento, así como puedes suscribirte a él, por lo que se comporta de ambas maneras.
Bueno, esta es otra presentación. Entonces, las señales en general, es un concepto de reactividad. No voy a profundizar en la reactividad, pero, sí, en general, necesitamos reaccionar ante algún cambio en el estado y actualizar de manera reactiva nuestra interfaz de usuario, o tal vez ejecutar alguna lógica de negocio. Bueno, aquí está solo la parte observable de nuestra señal, como si estuviéramos aplicando al flujo de eventos, estamos aplicando la función de enlaces en este caso, y obteniendo otro flujo. Bueno, ¿qué hay del uso? Hay bastantes bibliotecas, frameworks que contienen este concepto de señales. Seguro, hay señales en Angular, así como Angular usa ArigGS.
Probablemente, el término señal se hizo popular después de que solid.js lo introdujera. Y seguro, hay una biblioteca independiente, ArigGS. No se trata solo de las señales, sino que hay un concepto llamado sujetos de comportamiento que pueden contener el valor que se puede acceder de manera sincrónica. Hay una propuesta estándar, seguro. En Grammarly, tenemos nuestra propia biblioteca que fue desarrollada hace bastante tiempo. Proporciona un código llamado GrammarlyFocal, y también básicamente proporciona o comparte el mismo concepto de señales, y hay muchos más ejemplos.
Bueno, suficiente con la especie de introducción. Veamos cómo estamos aprovechando la idea de señales en nuestro editor de Grammarly. Es como la misma pantalla, nada especial. No voy a profundizar en los detalles, pero veamos cómo podría ser, en teoría, implementado con React. Esto es muy simple, solo para el propósito de la demostración.
Comments