Nested Properties

Las propiedades anidadas permiten que un Item o ReactiveModel tenga otras instancias de Item o Collection como propiedades reactivas. Esto es útil para modelar relaciones entre entidades (como un usuario con un perfil, o un post con sus comentarios).

🎯 ¿Qué son las Propiedades Anidadas?

Una propiedad anidada es una propiedad que en lugar de ser un valor primitivo (string, number, etc.), es otra instancia de ReactiveModel, Item o Collection. Esto permite:

  • Modelar relaciones complejas entre entidades

  • Mantener la reactividad en objetos anidados

  • Acceder a métodos y propiedades de objetos anidados directamente

  • Gestionar el estado de objetos anidados de forma independiente

📦 Sintaxis

Para definir una propiedad anidada, debes usar un objeto en lugar de un string en el array properties:

properties: [
  'propiedadSimple',
  {
    name: 'propiedadAnidada',
    value: ClaseReactiveModel,
    properties: ['prop1', 'prop2'] // Propiedades del objeto anidado
  }
]

Estructura del Objeto

🧩 Ejemplos

Item con otro Item como Propiedad

Item con Collection como Propiedad

🔄 Reactividad en Propiedades Anidadas

Las propiedades anidadas mantienen su reactividad completa. Los cambios en objetos anidados se propagan correctamente:

📝 Métodos y Propiedades

getProperties() con Propiedades Anidadas

El método getProperties() incluye automáticamente las propiedades de objetos anidados:

Para colecciones, getProperties() retorna los items en lugar de la instancia de la colección:

set() con Propiedades Anidadas

Puedes usar set() para actualizar propiedades anidadas:

⚠️ Consideraciones Importantes

1. Inicialización de Collections

Cuando uses Collection como propiedad anidada, necesitas configurarla después de la inicialización:

2. Valores Iniciales

Puedes pasar valores iniciales para propiedades anidadas en el constructor:

🎓 Mejores Prácticas

  1. Define interfaces claras: Usa TypeScript para definir las interfaces de tus objetos anidados

  2. Reutiliza clases: Crea clases reutilizables para Items y Collections que se usen como propiedades anidadas

  3. Configura Collections después de la inicialización: Las Collections necesitan configuración adicional

  4. Maneja eventos apropiadamente: Decide si escuchar eventos en el objeto anidado o en el padre

  5. Usa getProperties() para serialización: El método getProperties() maneja correctamente las propiedades anidadas

  6. Evita referencias circulares: No crees relaciones circulares que puedan causar problemas de memoria


Esta documentación te ayudará a trabajar con propiedades anidadas de forma efectiva en tus modelos reactivos.

Last updated