Javascript 关于自定义web组件和生命周期回调的说明

Javascript 关于自定义web组件和生命周期回调的说明,javascript,html,lifecycle,web-component,custom-element,Javascript,Html,Lifecycle,Web Component,Custom Element,我希望得到一些澄清,因为它与自定义元素及其生命周期回调有关: 我对创建回调的元素有一些混淆。规范中有这样的说法:“在创建元素的每个实例时调用。”我认为,实例在创建之后就“实际上”插入到dom中,因此这两个回调在文档流中基本上是背靠背的。我还在线读到,创建的回调与定义的元素关系更密切。这些案例中的哪一个是规范所说的 这可能与前一个问题类似:我看到定制元素将其转换为文档的3种方式: 它从一开始就是文档的一部分。在这种情况下,对于document.readyState事件,何时注册定义 它是通过jav

我希望得到一些澄清,因为它与自定义元素及其生命周期回调有关:

  • 我对创建回调的元素有一些混淆。规范中有这样的说法:“在创建元素的每个实例时调用。”我认为,实例在创建之后就“实际上”插入到dom中,因此这两个回调在文档流中基本上是背靠背的。我还在线读到,创建的回调与定义的元素关系更密切。这些案例中的哪一个是规范所说的

  • 这可能与前一个问题类似:我看到定制元素将其转换为文档的3种方式:

  • 它从一开始就是文档的一部分。在这种情况下,对于document.readyState事件,何时注册定义

  • 它是通过javascript插入的。我假设程序员将在创建和插入之前注册定义。然后,问题是:创建的回调何时启动?附加的回调何时启动?最后,如果我将其他元素设置为在插入时与我的元素交互,那么我何时可以确保该工作完成

  • 我能想到的最后一种方法与shadowdom有关,也就是说元素在文档中有一半在文档中,另一半在文档中


  • 感谢您的阅读,如果您能提供任何澄清和启发,我将不胜感激。

    我可以为您回答1和2.2

    [注意:这是用于本机实现,而不是聚合物]

    首先,在声明中使用创建的回调。 创建元素时会调用它。 所以当你这么做的时候

    var myElement = document.createElement("custom-element");
    
    在调用下一行代码之前调用createdCallback

    当你表演的时候

    document.body.appendChild(myElement);
    
    在调用下一行代码之前调用attachedCallback

    现在shadowDom和它的css可能比我在测试自定义元素时注意到的要晚一点