我应该何时在构造函数或connectedCallback中应用模板

时间:2017-05-12 06:54:38

标签: javascript web-component custom-element html5-template

我应该何时在constructorconnectedCallback中应用模板?当我在回调中执行此操作时,有时会调用attributeChangedCallback,我无法查询元素。

export class TestElement extends HTMLElement {
  constructor() {
    super();
    //here ?
  }

  connectedCallback() {
    //here ?
  }
}

我想知道哪里以及为何更好。

这是剪切的模板应用代码

let t = document.createElement('template');
t.innerHTML = require('template.html');
this.appendChild(t.content.cloneNode(true));

1 个答案:

答案 0 :(得分:3)

如果您不使用Shadow DOM,则不应在constructor()回调中插入模板。

因此,您只应将其附加到connectedCallback()

无论如何attributeChangedCallback()可以在上述回调之前或之后调用,具体取决于您的自定义元素的使用方式。因此,在尝试查询某些内部元素之前,应始终进行测试。