Skip to content(if available)orjump to list(if available)

State-based vs Signal-based rendering

State-based vs Signal-based rendering

12 comments

·October 20, 2025

yxhuvud

> Traditional state management like React hooks

Oh boy. The youth of the author is really visible.

zxspectrumk48

This article is completely backwards. We do not want to manually manage what-gets-refreshed-when. The whole point of React was to react to state changes automatically.

jjj123

I’m confused by your comment. Signals do reduce manual render management.

By default, usestate causes unnecessary rerenders which signals avoid (all automatically).

agos

that's the theory, but it's quite easy to end up needing to micromanage react to avoid pathological rendering scenarios

codedokode

I don't like the style of code in the article, with weird functions like "useState" and "useSignal". Looks ugly to me.

Also, it seems that with signals you must use immutable values only. Imagine if you have, let's say, a text document model, and you need to create a new copy every time the user types a letter. That's not going to work fast. And there will be no granular updates, because the signal only tracks the value (whole document), not its components (a single paragraph).

Also the article mentions rarely used preact and doesn't mention Vue. Vue can track mutable object graphs (for example, text document model). But Vue uses JS proxies that have lot of own issues (cannot access private fields, having to deal with mixing proxies and real values when adding them to a set, browser APIs break when a proxy is passed).

Also I don't like that React requires installing Node and compilation tools, this is a waste of time when making a quick prototype. Vue can be used without Node.

Jaxan

Immutable does not mean you have to copy the whole structure. You can store only the changes. This is how immutable data structures work in functional languages such as Haskell.

AlienRobot

React is crazy because someone thought this was too complicated for developers:

    event.listenTo(render);
    event.emit();
And that we should do this instead:

    property.listenTo(render);
    property.set([property.get()[0]]);

Aldipower

"Traditional state management like React hooks triggers..."

Traditional? I remember when React was the new kid on the block. I am getting old! :-D

pingoo101010

Preact signals are far superior to other state management patterns for react, but don't use a ContextProvider as shown is this article, pass the signals as props instead.

e.g:

  function MyComponent({ disabled }: { disabled: Signal<boolean> }) {
    // ...
  }

jzig

Are Angular signals the same as Preact signals?

hhthrowaway1230

knockout js is that you?

rivetfasten

I was about to mention this too.

Compare: "import a specific lightweight library and wire together as needed" vs "write the whole app in terms of a bloated framework".

I've been out of the frontend game for a while, but what does react give you that knockout and maybe some url management logic do not?

I guess components are supposed to standardize modularity, so you can easily import some random widget?