> Web Components give the basic blocks of writing those frameworks easier.
No, they don't. Both for the fact that they need 20 more web specs to fix issues that none of the frameworks have, to the fact that they are actually pretty bad as basic building blocks: you can't control their rendering (once a web component is on the page, it will eagerly render, and will pull in and render whatever imports it has); shadow dom breaks all sorts of expectations; each is an isolated rendering block, so you can't control for batch rendering; there's no server-side rendering story to speak of, and that's only off the top of my head.
There are many more tehcnical reasons than I listed, but I'd have to hunt them down. There are many, many, many reasons why even the authors which originally really rooted for web components, and modeled their frameworks after them now moved awaya from them completely (Solid, Svelte, Vue).
There are also many, many, many reasons why even the new framework overwhelmingly _don't_ use web components for anything.
There are a few thoughts^
- Ryan Carniato (Solid): https://dev.to/ryansolid/maybe-web-components-are-not-the-fu...
- Ryan Carniato's stream on web components: https://www.youtube.com/watch?v=BEWkLXU1Wlc (you can skip to 1:37:17 for a specific discussion)
- Rich Harris (Svelte): https://dev.to/richharris/why-i-don-t-use-web-components-2ci...
- All these issues are still there, 4 years later: https://twitter.com/Rich_Harris/status/1198332398561353728
and so on and so forth.
> but JSX does not run natively in the browser. WCs do. There are compromises.
JSX is probably the absolute last thing frameworks care about. They do care about things like not jumping through hoops to make things work.