code: function (attrValue, clobber) {
      var el = this.el;
  
      // Just cache the attribute if the entity has not loaded
      // Components are not initialized until the entity has loaded
      if (!el.hasLoaded) {
        this.updateCachedAttrValue(attrValue);
        return;
      }
  
      // Parse the attribute value.
      // Cache current attrValue for future updates. Updates `this.attrValue`.
      // `null` means no value on purpose, do not set a default value, let mixins take over.
      if (attrValue !== null) {
        attrValue = this.parseAttrValueForCache(attrValue);
      }
  
      // Cache current attrValue for future updates.
      this.updateCachedAttrValue(attrValue, clobber);
  
      if (this.initialized) {
        this.updateComponent(attrValue, clobber);
        this.callUpdateHandler();
      } else {
        this.initComponent();
      }
    }
docs: Apply new component data if data has changed (from setAttribute).
  
  @param {string} attrValue - HTML attribute value.
  If undefined, use the cached attribute value and continue updating properties.
  @param {boolean} clobber - The previous component data is overwritten by the atrrValue