🧬Props(Propiedades)
Las props en Atomico son la forma de asociar al webcomponent propiedades y atributos reactivos que detonan la lógica o interfaz del webcomponent.
Sintaxis
Toda función que represente el webcomponent podrá asociar el objeto estático props para la declaración de propiedades y atributos reactivos, ejemplo:
Considere que:
los nombre de prop en formato Camel Case será traducido a para su uso como atributo al formato Kebab Case, este comportamiento puede ser modificado mediante la propiedad "attr" al usar una declaración estructurada.
Las declaraciones estructuradas requieren mínimamente la propiedad "type".
No todos los tipos pueden usar la propiedades "reflect".
La forma de declarar la propiedad "value" puede variar según el tipo.
Declaraciones simple
Las declaraciones simples permiten asociar solo la validación de tipo.
Declaraciones estructuradas
Mejora la definición añadiendo declaraciones utilitarias, permitiendo por ejemplo reflejar el valor de la propiedad como atributos, emitir automáticamente eventos o asociar valores por defecto.** Recuerde este tipo de declaraciones requieren mínimamente el uso de la propiedad type.**
Prop.type
Tipo | Soporta la propiedad "reflect" |
---|---|
String | ✔️ |
Number | ✔️ |
Boolean | ✔️ |
Object | ✔️ |
Array | ✔️ |
Promise | ❌ |
Symbol | ❌ |
Function | ❌ |
Prop.reflect
Si la propiedad "reflect" se define como true se refleja su valor como atributo del webcomponent, esto es útil para la declaración de estados del CSS, ejemplo:
Prop.event
Permite despachar un evento automatico ante el cambio de valor del prop, ejemplo:
Donde :
event.type
: String - opcional, nombre del evento a emitir ante el cambio de la propevent.bubbles
: Boolean - opcional, indica que el evento puede ser escuchado por los contenedores.event.detail
: Any - opcional, permite adjuntar informacion custom del eventoevent.cancelable
: Boolean - opcional, indica que el evento puede ser cancelado por algun oyenteevent.composed
: Boolean - opcional, permite que el evento sobrepase el limite del shadow-root
Las propiedades especiales del evento son las conocidas EventInit
, puede conocer mas detalle en la documentación adjunta
Prop.attr
Permite modificar el atributo que por defecto genera atomico, ejemplo:
la declaración anterior define que el atributo "my-value" refleja su estado en la prop "value".
Prop.value
Atomico permite la definición de valores de inicio por defectos de las props.
La asociación de callback como value permiten generar valores únicos para cada instancia del webcomponent, esto es útil con los tipos Object y Array ya que elimina las referencias entre instancias.
Reactividad en el scope del webcomponent
Atomico elimina el uso de "this" dado su enfoque funcional, pero añade el hook useProp el que permite referenciar una prop para su uso con una sintaxis es similar a useState, ejemplo:
Last updated