📌 ¿Sabías que puedes personalizar las Signals en Angular? 🚀

Cuando creas una signal en Angular, puedes agregar un segundo argumento para especificar un comportamiento personalizado, como definir una función de comparación para determinar si los valores son iguales.

Esto es útil, por ejemplo, para evitar actualizaciones innecesarias si los valores de la signal son complejos o tienen una lógica específica para determinar su igualdad.

💡 Aquí te dejo un ejemplo:

// Función personalizada para comparar dos objetos

const deepEqual = (a: { x: number; y: number }, b: { x: number; y: number }): boolean => {
  return a.x === b.x && a.y === b.y;
};
// Crear una signal con una función de comparación personalizada

const position = signal<{ x: number; y: number }>(

  { x: 0, y: 0 }, // Valor inicial

  { equal: deepEqual } // Función de comparación

);

// Cambiar el valor de la signal

position.set({ x: 0, y: 0 }); // No se actualiza, porque deepEqual devuelve true

position.set({ x: 1, y: 1 }); // Se actualiza, porque los valores son diferentes

console.log(position()); // { x: 1, y: 1 }

✨ ¿Por qué usar esta opción?

✅ Evitas actualizaciones innecesarias: Ideal para Signals con datos complejos.

✅ Mayor control: Personalizas cómo y cuándo una signal debe considerarse “igual” o “diferente”.

Este enfoque es perfecto para escenarios donde manejas estructuras de datos como objetos o arrays y no quieres depender solo de la comparación por referencia.

🤔 ¿No lo sabías?

¡Asegúrate de hacer mi nuevo curso de Angular Moderno para que seas un pro en Signals y domines todo lo nuevo de Angular! 💻✨

📣 https://bit.ly/angular-moderno

Leave a Comment

Your email address will not be published. Required fields are marked *

Acerca del autor
domini code

⭐️ Programación y desarrollo

Posts recientes
Scroll to Top