News for hackers. Stuff that matters.
Re:HTML Web Components by cantSpellSober on Monday November 13, 2023 @11:03AM (#38251712)
> they can render before JavaScript. React components cannot do this — full stop

Not a full stop; SSR means they could render before client-side JS.

The example is a bit too simple to make the author's point IMO. A web component that handles changes to state would be a better comparison, and make for a better argument.

Re:HTML Web Components by algem on Monday November 13, 2023 @11:12AM (#38251843)
How would an "Html Web Component" handle state change? I was a bit lost on the benefits given the example of wrapping an img tag. Sure you could group and reuse common elements but you would still need javascript to do anything interactive. Even in the example given the alt text of the image is typically dynamic now because of localization so even then content is missing with javascript.
Re:HTML Web Components by hyperhello on Monday November 13, 2023 @11:14AM (#38251876)
That’s what JavaScript is supposed to be for: state change. Not rendering the page.
Re:HTML Web Components by goeiedaggoeie on Monday November 13, 2023 @11:53AM (#38252283)
This is the main issue for me with webcomponents, they are not SSR friendly.
Re:HTML Web Components by kaba0 on Monday November 13, 2023 @12:03PM (#38252396)
Do you want SSR for SEO, or for fast first interaction? Because if the latter, then arguably some form of webcomponents might be theoretically better optimizable by browsers than DOM-element soups.
Re:HTML Web Components by nicoburns on Monday November 13, 2023 @12:45PM (#38252897)
> then arguably some form of webcomponents might be theoretically better optimizable by browsers than DOM-element soups.

Arguably they might be less optimisable than regular web frameworks, as they make it difficult to coordinate between different components on the page.

Re:HTML Web Components by goeiedaggoeie on Monday November 13, 2023 @03:31PM (#38254985)
This is a good point, but I would counter, perceived speed of rendering from a user perspective is more important than time to interact with the app/site (a reasonable time to interact is however very important.

Good load order and only loading in the content and JS above the fold initially helps a ton.

JS frameworks are huge and I am still saddened that proper tree shaking and optimization got left by the way side in how the modern web has evolved. I worked with google closure in advanced modes and the closure components for a few years and the compiler was absolutely astounding (and the components designed with the compiler in mind) in code splitting, tree shaking and minimization.

Re:HTML Web Components by kaba0 on Monday November 13, 2023 @03:34PM (#38255020)
Oh, google closure was absolutely ahead of its time!
Re:HTML Web Components by jmull on Monday November 13, 2023 @12:17PM (#38252572)
Consider the approach this article suggests.

You want to have the tags and content appear in the web component (not rendered by JS) which makes it easily and immediately available to crawlers.

Re:HTML Web Components by toasted-subs on Monday November 13, 2023 @05:29PM (#38256251)
You can pre-generate them on the client though.
Re:HTML Web Components by inglor on Monday November 13, 2023 @02:37PM (#38254296)
Good point, and conversely, web components can't since they must be registered in JavaScript before the side loads.

Hydration solutions exist but are usually worse and come with surprising tradeoffs and harm composabilitiy.