Re: [w3c/webcomponents] Scoped Custom Element Registries (#716)

@caridy I don't think this proposal is at different of a level than the current CustomElementRegistry, and I don't think it would be only for tools. In fact a major reason for proposing this is to get closer to the scoping and workflow that pure-JS component solution enjoy. 

Consider the following React-ish example:

```js
import {ChildComponent} from './child-component.js';

export class ParentComponent extends Component {
  render() {
    return <ChildComponent>Hello</ChildComponent>;
  }
}
```

This has no problem with several components being named ChildComponent, supports renaming, and multiple versions in the same program.

I think we can get very close to this with custom elements (this example using LitElement for conciseness, it just creates a shadow root automatically):

```js
import {ChildElement} from './child-element.js';
import {registry} from './registry.js';
registry.define('child-element', ChildElement);

export class ParentElement extends LitElement {
  render() {
    return html`<child-element>Hello</child-element>;
  }
}
```

This has no problem with several components being named child-element, supports renaming, and multiple versions in the same program, with only a slightly addition in LoC for making sure the element is registered. I see this as very hand-writable.


-- 
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/716#issuecomment-368088899

Received on Friday, 23 February 2018 17:59:34 UTC