Las props en Atomico son la forma de asociar al webcomponent propiedades y atributos reactivos que detonan la lógica o interfaz del webcomponent.
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.
Las declaraciones simples permiten asociar solo la validación de tipo.
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.**
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:
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 prop
event.bubbles
: Boolean - opcional, indica que el evento puede ser escuchado por los contenedores.
event.detail
: Any - opcional, permite adjuntar informacion custom del evento
event.cancelable
: Boolean - opcional, indica que el evento puede ser cancelado por algun oyente
event.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
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".
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.
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:
Tipo | Soporta la propiedad "reflect" |
---|---|
String
✔️
Number
✔️
Boolean
✔️
Object
✔️
Array
✔️
Promise
❌
Symbol
❌
Function
❌