- objective-c - iOS 5 : Can you override UIAppearance customisations in specific classes?
- iphone - 如何将 CGFontRef 转换为 UIFont?
- ios - 以编程方式关闭标记的信息窗口 google maps iOS
- ios - Xcode 5 - 尝试验证存档时出现 "No application records were found"
我是网络开发的新手,最近我看到很多关于自定义元素 v1 的辩论和讨论。它们允许您使用自己的自定义行为定义自己的元素,如果使用 Shadow DOM,还可以使用范围样式。
当我在this了解它的时候网站,我不理解“自定义元素 react ”下的表格。谁能解释一下使用“构造函数”和“connectedCallback”以及术语“创建或升级”和“插入 DOM”之间的区别?
关于额外信息,我的自定义元素的定义在一个单独的文件中,它使用影子 DOM。我使用 HTML Import 将元素的定义导入到主文档中。
最佳答案
正如 Juvian 在评论中所说:
constructor()
在创建元素时被调用。connectedCallback()
在元素附加到 DOM 时(之后)被调用。 constructor()
调用不特定于自定义元素,它发生在任何对象创建(通常使用 new
运算符创建),而不仅仅是 HTML 元素。
在 constructor()
调用中,您可以创建 Shadow DOM,但不能在普通 DOM 中添加节点,也不能添加或设置属性。
关于升级:
升级 发生在随后定义 HTML 代码中声明的未知标记时(通过 customElements.define()
方法)。 “未知”元素成为“自定义”元素。然后调用 constructor()
和 connectedCallback()
方法。
注意:当一个元素被创建(未知),然后被定义时,它只有在附加时才会升级。
class CE extends HTMLElement {
constructor() {
super()
console.info( 'constructed' )
}
connectedCallback() {
console.info( 'connected' )
this.innerHTML = 'Hello' //can't be set in constructor()
}
}
B1.onclick = function () {
ce = document.createElement( 'c-e' )
ce.textContent = 'unknown'
}
B2.onclick = function () {
document.body.appendChild( ce )
}
B3.onclick = function () {
customElements.define( 'c-e', CE)
}
<button id=B1>create</button>
<button id=B2>attach</button>
<button id=B3>define</button>
用上面的代码片段尝试不同的组合:
关于javascript - 自定义元素v1中constructor和connectedCallback的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40492330/
我正在使用 Web Components v1。 假设有两个自定义元素: parent-element.html child-element.html 我正在尝试在 parent-
问题描述 在 connectedCallback() 之后查询嵌入在模板元素中的节点时,Polymer (2.x) 似乎存在计时问题已被调用。我希望第一次调用 this.shadowRoot.quer
什么时候应该在 constructor 或 connectedCallback 中应用模板?当我在回调中执行此操作时,有时之前调用了 attributeChangedCallback 并且我无法查询元
我是 Web 组件的新手,我注意到一些示例在自定义元素的构造函数中设置 dom,而其他示例在 connectedCallback 中设置。 由于两者似乎都可以正常工作(尽管我只尝试了 Chrome),
class SomeClass extends HTMLElement { constructor() { super(); } connectedCallb
正如文档所说: connectedCallback fires each time a custom element is appended into a document-connected ele
我想知道 ready() 方法在 polymer 中的重要性是什么,这种方法的准时初始化是什么意思,以及 read( ) 和 connectedCallback() ??? 最佳答案 以下应该有所帮助
我正在学习网络组件并正在构建一个动态列表以掌握它们。让它工作后,我读到最好使用 connectedCallback 方法附加影子根。但是,尝试这样做后,我遇到了一堆无法修复的错误。此外,我为标签设置简
我正在创建一个需要在列表中切换元素的选举应用程序。我有以下自定义元素 Web 组件。为了简洁起见,我已经从类中删除了不相关的函数。 // Position // -------------------
我有一个类叫做 QueryAddable class QueryAddable extends HTMLElement { connectedCallback() { console.lo
为什么 connectedCallback() 会破坏我的 Plunk? Comment and uncomment it in this demo to see what I mean.我做错了什么
spec说: However, note that connectedCallback can be called more than once, so any initialization work
内connectedCallback()我的自定义元素的方法 textContent作为空字符串返回。 基本上我的代码归结为以下...... class MyComponent extends HTM
我正在使用非常好的自定义元素。但是我遇到了一个问题: 当 connectedCallback() 函数被调用时,节点似乎还没有在 DOM 中的位置,因此我无法访问它的父节点——我需要它们。 class
粘贴在我的问题中的语句是从 https://developer.mozilla.org/en-US/docs/Web/Web_Components/Using_custom_elements#Usin
我是一名优秀的程序员,十分优秀!