Lifecycle callbacks

Lifecycle callbacks are special methods defined by the Custom Elements specification which fire when the element go through specific changes during its lifetime:

  • createdCallback() is called when a custom element is created.
  • attachedCallback() is called when a custom element is inserted into a DOM subtree.
  • detachedCallback() is called when a custom element is removed from a DOM subtree.
  • attributeChangedCallback(attributeName, oldValue, newValue) is called when a custom element's attribute value has changed.

Automatic changed attributes callback

Bosonic provides a useful feature: if you declare the attributes used by your element in the <element> tag, like this:

<element name="hello-world" attributes="opened active">
    ...
</element>

Bosonic will automatically call methods named after the attributes, i.e:

Bosonic.register({
    openedChanged: function(old, new) {}
    activeChanged: function(old, new) {}
});

Observing children mutations

Bosonic provides support for childListChangedCallback(removedNodes, addedNodes): if you define this callback in your element's code, Bosonic will setup a MutationObserver that will call your method with the removed and added nodes as arguments whenever you add or remove children to/from your element.