Propiedades Anidadas
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
Define interfaces claras: Usa TypeScript para definir las interfaces de tus objetos anidados
Reutiliza clases: Crea clases reutilizables para Items y Collections que se usen como propiedades anidadas
Configura Collections después de la inicialización: Las Collections necesitan configuración adicional
Maneja eventos apropiadamente: Decide si escuchar eventos en el objeto anidado o en el padre
Usa getProperties() para serialización: El método
getProperties()maneja correctamente las propiedades anidadasEvita 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