←back to thread

277 points merqurio | 1 comments | | HN request time: 0s | source
Show context
kubb ◴[] No.45113384[source]
For the frontend work that I did, Lit was a godsend. It really helps you build components and apps without getting in the way.

In comparison, Angular is a monster, and React is designed for the old browser capabilities, and is now staying around by inertia, not by inherent quality.

replies(3): >>45113627 #>>45113773 #>>45114105 #
pmg101 ◴[] No.45113627[source]
Which old browser capabilities are you referring to? Could you say more, or link to more details?
replies(1): >>45113746 #
kubb ◴[] No.45113746[source]
No shadow DOM, no web components, no template strings, etc.
replies(1): >>45114479 #
troupo ◴[] No.45114479[source]
> No shadow DOM

Funny you should say that when the current advise for web components is to avoid Shadow DOM (almost like the plague)

> no web components

As in?

> no template strings

Why would React need template strings? React is not the only framework that doesn't use template strings for anything (Vue, Solid, Svelte come immediately to mind). And it's hard to accuse those of being behind the times when Solid is literally the reason for the upcoming native signals proposal

replies(1): >>45116314 #
azangru ◴[] No.45116314{3}[source]
> the current advise for web components is to avoid Shadow DOM (almost like the plague)

Could you provide the source for this advice?

replies(2): >>45117066 #>>45120262 #
jfagnani ◴[] No.45117066{4}[source]
It's wrong - both that it's general "current advice", and the advice itself when it does pop up.

Yes, there are some people who say to build web components without shadow DOM, but I'm convinced they're only building leaf nodes so they don't need composition with slots. As soon as they try to build any kind of container element they hit big problems.

replies(3): >>45120776 #>>45125423 #>>45126582 #
1. brazukadev ◴[] No.45126582{5}[source]
> As soon as they try to build any kind of container element they hit big problems.

That's not true. Web components that render nothing will contain only their children as nodes, that's good enough for a good amount of container use cases.

So you can have something like:

  <uix-modal>
    <uix-button icon="wifi"></uix-button>
    <dialog>
      <div class="flex flex-col gap-4 p-4 w-[640px]">
       ...
      </div>
    </dialog> 
  <uix-modal>
It could be better, but this little annoyance is still better than React, Angular, and the other options.