Skip to content

Commit 7158112

Browse files
committed
Add a nonintuitive disconnectedCallback example
Supersedes and closes #4127. Closes WICG/webcomponents#760.
1 parent edc1e95 commit 7158112

File tree

1 file changed

+29
-0
lines changed

1 file changed

+29
-0
lines changed

source

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -66945,6 +66945,34 @@ customElements.define("x-foo", class extends HTMLElement {
6694566945
reaction</span> code can perform its own mutations, it is not possible to give a global ordering
6694666946
guarantee across multiple elements.)</p>
6694766947

66948+
<div class="example">
66949+
<p>An element's <code data-x="">connectedCallback</code> can be queued before the element is
66950+
disconnected, but as the callback queue is still processed, it results in a <code
66951+
data-x="">connectedCallback</code> for an element that is no longer connected:</p>
66952+
66953+
<pre><code class="js" data-x="">class CParent extends HTMLElement {
66954+
connectedCallback() {
66955+
this.firstChild.remove();
66956+
}
66957+
}
66958+
customElements.define("c-parent", CParent);
66959+
66960+
class CChild extends HTMLElement {
66961+
connectedCallback() {
66962+
console.log("CChild connectedCallback: isConnected =", this.isConnected);
66963+
}
66964+
}
66965+
customElements.define("c-child", CChild);
66966+
66967+
const container = document.createElement("div");
66968+
container.innerHTML = "&lt;c-parent>&lt;c-child>&lt;/c-child>&lt;/c-parent>";
66969+
customElements.upgrade(container);
66970+
document.body.appendChild(container);
66971+
66972+
// Logs:
66973+
// CChild connectedCallback: isConnected = false</code></pre>
66974+
</div>
66975+
6694866976
<div w-nodev>
6694966977

6695066978
<hr>
@@ -122593,6 +122621,7 @@ INSERT INTERFACES HERE
122593122621
Tom Pike,
122594122622
Tom Schuster,
122595122623
Tomasz Jakut, <!-- Comandeer on GitHub -->
122624+
Tomek Wytrębowicz,
122596122625
Tommy Thorsen,
122597122626
Tony Ross,
122598122627
Tooru Fujisawa,

0 commit comments

Comments
 (0)