- From: Joseph Orbegoso Pea <notifications@github.com>
- Date: Fri, 01 Jul 2016 17:32:36 -0700
- To: w3c/webcomponents <webcomponents@noreply.github.com>
- Cc:
- Message-ID: <w3c/webcomponents/issues/504/230073228@github.com>
That doesn't work because the connected events and distribution events don't necessarily happen at the same time. When we write the following ```html <div> <motor-scene id="scene"> <motor-node id="node"></motor-node> </motor-scene> </div> ``` and it gets rendered, the `motor-node`'s `connectedCallback` is fired. At that moment in time, `assignedSlot` is null. Suppose we add a shadow root to the `motor-scene`, containing: ```html #shadow-root <motor-node id="inner-node"> <slot> </slot> </motor-node> ``` Then we get: ```html <div> <motor-scene id="scene"> #shadow-root <motor-node id="inner-node"> <slot> <!-- distributed motor-node --> <motor-node id="outer-node"></motor-node> </slot> </motor-node> <!-- original motor-node --> <motor-node id="outer-node"></motor-node> </motor-scene> </div> ``` At some point in time after adding the shadow root, `motor-node`'s `assignedSlot` will be set to the above `slot` element, but `motor-node`'s `connectedCallback` won't fire, so we can't rely on `connectedCallback` to know when the distribution happens. With closed shadow trees, the value of `assignedSlot` remains `null` the whole time and we can't poll `assignedSlot` to discover when distribution has happened. `distributedCallback` (or perhaps `assignedCallback` matching the v1 terms) could be an official mechanism that we could rely on in order to have such insight. The main reason why I want such insight is that I want to make an API that's as easy to use as possible, and I don't just mean that the API is easy to use when documentation is followed, but that the API is easy to use because it will do a good job of teaching usage patterns to someone when they try the API by trial and error, and which will do a really good job of catching invalid use cases in applications where life and death could possibly even be at hand. Something like `assignedCallback` (or some other official mechanism that makes it easy for an element to know it's been distributed) would make it easier for a library or framework author to write an HTML API that can detect more use cases (and react to them). --- You are receiving this because you are subscribed to this thread. Reply to this email directly or view it on GitHub: https://github.com/w3c/webcomponents/issues/504#issuecomment-230073228
Received on Saturday, 2 July 2016 00:33:10 UTC