Versiones comparadas

Clave

  • Se ha añadido esta línea.
  • Se ha eliminado esta línea.
  • El formato se ha cambiado.

Subdirección de las Tecnologías de la Información y Comunicaciones

Área de Gobernanza y Calidad

Table Excerpt Include
nameLOGO_JUNTA
merge-tablestrue
pageARQ:Recursos
typepage

Versión

Table Excerpt Include
statictrue
copytabletrue
nameVERSION_NORM_FRONT_GUIA_IMP_MODEL_MVVM
merge-tablestrue
pageNorm-front-toc
typepage

Info
titleSECCIÓN DE CONTENIDO

Modificar el name de la versión para que enlace a la versión correspondiente del documento (definida en el TOC)

Tabla de Contenido


Tabla de contenidos
maxLevel5
indent20px
exclude.*(Versión Actual|Cumplimiento Normativo|Histórico de cambios|Subdirección de las Tecnologías de la Información y Comunicaciones|Área de Gobernanza y Calidad|Tabla de Contenido)

Cumplimiento Normativo


Advertencia

Las normas expuestas son de obligado cumplimiento. La STIC podrá estudiar los casos excepcionales los cuales serán gestionados a través de los responsables del proyecto correspondiente y autorizados por el Área de Gobernanza de la STIC. Asimismo cualquier aspecto no recogido en estas normas deberá regirse en primera instancia por las guías técnicas correspondientes al esquema nacional de seguridad y esquema nacional de interoperabilidad según correspondencia y en su defecto a los marcos normativos y de desarrollo software establecidos por la Junta de Andalucía, debiendo ser puesto de manifiesto ante la STIC.

La STIC se reserva el derecho a la modificación de la norma sin previo aviso, tras lo cual, notificará del cambio a los actores implicados para su adopción inmediata según la planificación de cada proyecto.

En el caso de que algún actor considere conveniente y/o necesario el incumplimiento de alguna de las normas y/o recomendaciones, deberá aportar previamente la correspondiente justificación fehaciente documentada de la solución alternativa propuesta, así como toda aquella documentación que le sea requerida por la STIC para proceder a su validación técnica.

Contacto Arquitectura: l-arquitectura.stic@juntadeandalucia.es

Histórico de cambios


Los cambios en la normativa vendrán acompañados de un registro de las modificaciones. De este modo se podrá realizar un seguimiento y consultar su evolución. Ordenándose de mas recientes a menos recientes, prestando especial cuidado a las cabeceras de la tablas dónde se indican las fechas de entrada en vigor y versión.

Expandir
titleHistórico de cambios
VersiónPre-release AdopciónActivaRetiroAlcance
v01r00

 




  • Versión inicial del documento

1. Contenido

ElementoDescripciónUso

Detalles en lit-element

vistaElemento del componente encargado de gestionar el renderizado y los estilosCuando que se deseé un componente visual
Bloque de código
languagejs
themeMidnight
window.customElements.define('tag-del-componente', WcSticButtonView);
vista-modeloElemento del componente encargado de gestionar las propiedades y la lógica visual Cuando el componente tenga propiedades o deba gestionar lógica visual
Bloque de código
languagejs
themeMidnight
titleEjemplos de ViewModel
@property({type:boolean}) visualStateProperty!:boolean;

@property({type:MyModelComponentClass}) modelComponent!:MyModelComponentClass;

__onEvent(ev:EventType){}

modelo-componente

propiedad compleja del componente. Es un agrupador de propiedades por contexto o funcionalidadCuando se quieran agrupar las propiedades del componente en un concepto



Bloque de código
languagexml
themeMidnight
titleInyección al tag como propiedad
<tag-del-componente .modelComponent="${myModelComponent}"/>
modelo-negocioElemento que representa un concepto de negocio

Cuando se quiera definir nuestro negocio (DDD) dentro de nuestra capa visual.

Normalmente se definirán estos modelos en un core que será utilizado por componente de tipo organismo, ya que estos son los responsables de gestionar el negocio

Bloque de código
languagexml
themeMidnight
titleInyección al tag como propiedad
<tag-del-componente .data="${myBussinessModel}"/>
evento-interactivoEvento generado por el componente con un significado interactivo más que de negocio (click, hover, drag&drop..) 

Cuando se quiera modificar el estado visual del componente como respuesta a la acción de un usuario con el componente.

Este tipo de eventos no deben tener conocimiento ni semántica del negocio.

Suelen ser generados átomos y consumidos por componentes moléculas.

Se debe evitar lo máximo posible su uso dentro de las capas de negocio, haciendo esos

Hay que tener en cuenta en la generación del evento para su difusión interna los valores de bubbles y cancelable. 

Sólo escalarán del componente definido cuando el componente en sí sea un átomo o molécula sin negocio.

Los nodos del DOM mas exteriores deben controlar que el evento no salga del ámbito del componente para garantizar su aislamiento registrandose como listeners y cancelando la difusión. 

Bloque de código
languagexml
themeMidnight
titleInyección de manejadores de eventos interactivos.
<tag-del-componente @interactiveEvent="${this.__onInteractive}"/>

<tag-del-componente @click="${this.__onClick}"/>
evento-negocioEvento generado por el componente con un significado de negocio (sort, filter, page, save, next etc)

Cuando se quiera modificar el estado visual del componente como respuesta a la acción de negocio por parte del usuario.

Este tipo de eventos tienen conocimiento y semántica dentro del negocio de la aplicación y por norma general se utilizan para compartir información entre componentes (padres, hermanos) siguiendo el patrón orquestación.

Por norma general suele escalar a las capas de componentes superiores.

Suelen ser generados Moléculas y consumidos por componentes Moléculas, Organismos

Bloque de código
languagexml
themeMidnight
titleInyección de manejadores de eventos de negocio.
<tag-del-componente @bussinessEvent="${this.__onMyBussiness}"/>




2. Categorización y modelo de eventos de los componentes