Re: [whatwg/dom] Declarative Shadow DOM (#510)

> @prlbr yes, but there are enough tricky questions about how this should be behave that it seems like we should see more user-space solution uptake in the wild. There's not so much that the browser can do here that can't be done with a very small script and `<template>`. I think if someone vended a library for this and it got uptake it might have a better chance of a comeback.
> 
> The code should be very simple, something along the lines of:
> 
> ```js
> for (const template of document.querySelectorAll('template[shadowroot]')) {
>   try {
>     const mode = template.getAttribute('shadowroot');
>     const root = template.parentElement.attachShadow({mode});
>     template.remove();
>     root.appendChild(document.adoptNode(template.content);
>   } catch (e) {
>     console.error(e);
>   }
> }
> ```

@caridy pretty much summed up what I also thought about @justinfagnani's idea. 

There are so many custom element libs out there (and there will be more and more), that we can't reliably expect them to all follow any non-standard standard. F.e. One custom element works with one SSR lib, another custom element only works with a yet a different SSR lib, etc. Things just won't work well.

As an application author, we may be able to choose a certain set of custom elements that work with a certain SSR implementation, but now we're back in the same boat as having to choose between React, Angular, Vue, Svelte. If I can't use _all_ custom elements reliably and I have to choose only certain ones, I may as well choose any other non-custom-element framework and thus custom elements aren't winning.

An official solution will be wonderful.

-- 
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub:
https://github.com/whatwg/dom/issues/510#issuecomment-655234266

Received on Wednesday, 8 July 2020 01:58:31 UTC