Con un componente personalizado, puede usar el atributo static get observedAttributes() en su componente web para especificar qué cambios de atributo desencadenan el método de ciclo de vida de attributeChangedCallback() .
Sin embargo, parece que también puede lograr una devolución de llamada similar usando la API MutationObserver , documentada aquí , con {attributes: true} para ver todos los cambios de atributos, o para refinarlo más, usando un {attributeFilter: Array<string>} .
¿Cuál es la diferencia en el uso de los dos métodos diferentes? Parece que MutationObserver ofrece mucha más flexibilidad, mientras que el primer método es equivalente a haber definido un filtro de atributos.
Sí, pequeñas diferencias funcionales.
Pero MutationObserver toma mucho más repetitivo, y no puede preguntarle al MO qué atributos se observan.
Es como decir ¿Por qué necesitamos Map, cuando todo se puede hacer extendiendo Array?
No tengo datos, pero diría que los atributos observedAttributes están altamente optimizados. MO está tomando un mazo para clavar un clavo.
Pero como comentaste; observedAttributes no le da atributos dinámicos.