Memos y Signals Derivados en Solid para Optimizar Actualizaciones

Clase 5 de 27Curso de SolidJS

Resumen

¿Qué son los memos y los signals derivados en Solid?

¡Hola! En este artículo vamos a sumergirnos en el mundo de Solid y su tercera primitiva reactiva: los memos. Pero para comprender completamente los memos, primero debemos explorar los signals derivados y cómo estos optimizan el sistema de actualizaciones en Solid.

¿Cómo funcionan los memos?

Los memos son una forma avanzada de signals en Solid. Permiten memorizar un estado y ejecutar efectos solo cuando realmente hay un cambio en el valor. Esto se logra con la función createMemo.

import { createMemo } from 'solid-js';

const doubleCount = createMemo(() => count() * 2);

En este ejemplo, doubleCount se recalculará solo si el valor count cambia, optimizando así la actualización del DOM y reduciendo cálculos innecesarios.

¿Cómo implementar signals derivados?

Los signals derivados son una técnica en la que se usa un signal base para crear otro más complejo. Solid permite crear, por ejemplo, un signal que calcule si un valor es divisible por tres:

const isDivisibleByThree = () => count() % 3 === 0;

Este signal derivado accede al signal count y utiliza el operador módulo para verificar la divisibilidad.

¿Código optimizado y mantenible?

El uso de memos no solo optimiza el sistema, sino que también mantiene el código claro y mantenible. A continuación, encapsulamos un signal derivado para obtener un memo que cambia su estado solo cuando es necesario:

const memoizedDivisibleByThree = createMemo(() => count() % 3 === 0);

// Muestra en consola solo si el valor cambia
createEffect(() => {
  console.log(memoizedDivisibleByThree() ? 'Yes' : 'No');
});

Con el memoizado memoizedDivisibleByThree, Solid solo ejecuta el efecto si el valor realmente cambia, evitando ejecuciones innecesarias y mejorando la eficiencia.

Ventajas de usar memos en Solid

  • Reducción de cálculos innecesarios: Los memos solo recalculan su valor cuando realmente el signal en cuestión cambia.

  • Optimización del rendimiento: Al minimizar las re-ejecuciones de efectos, se mejoran la velocidad y la eficiencia de la aplicación.

  • Código más limpio y mantenible: Al encapsular lógica compleja y redundante, se evita la duplicación de código y se facilita su comprensión.

Ahora que conocemos la importancia de los memos y signals derivados, no solo comprendemos mejor el funcionamiento interno de Solid, sino que también estamos más preparados para escribir código eficiente y óptimo en nuestras aplicaciones. ¡Anímate a seguir explorando estas fascinantes herramientas en tu próximo proyecto!