Signals-Based Frameworks Gain Traction

Developer interest in signals-based reactivity patterns continues to grow as an alternative to React's virtual DOM. Some developers are porting projects to SolidJS for performance, while others find Preact signals to be a lightweight and easy-to-adopt solution. In the enterprise space, recent Angular updates support gradual migration by bridging legacy reactive forms with its new signals-based forms.

- The signals pattern itself is not new; it appeared over a decade ago in early frameworks like Knockout.js before the virtual DOM became the dominant paradigm. SolidJS, created by Ryan Carniato, was instrumental in re-popularizing signals as a modern, high-performance alternative to the virtual DOM. - React's answer to the performance benefits of signals is the React Compiler (formerly "React Forget"), which automatically memoizes components and hooks at build time. Instead of developers manually using `useMemo` and `useCallback`, the compiler analyzes the code and injects these optimizations, aiming to prevent unnecessary re-renders without changing React's core rendering model. - The core difference between the two patterns is how they track changes: signals operate on a "push" model of fine-grained reactivity, where a state change directly notifies and updates only the specific DOM elements that depend on it. In contrast, the virtual DOM uses a "pull" model, where a state change causes the component and its children to re-render, creating a new virtual tree that is then "diffed" against the old one to find what to update in the actual DOM. - Performance benchmarks comparing a signals-based framework like SolidJS to a VDOM-based one like React have shown that signals can significantly reduce DOM mutations, memory usage, and update latency, especially in data-heavy applications. This is because the cost of an update with signals is proportional to what actually changed, not the size of the component tree that might have changed. - Other major frameworks are also adopting signal-like reactivity to move away from the overhead of a virtual DOM. Vue is developing an opt-in "Vapor Mode" that compiles components to a more efficient output using signals, which can completely drop the VDOM runtime from the application bundle. - While Preact Signals and SolidJS Signals share a common inspiration, their APIs differ; Solid's `createSignal` returns a getter and setter pair, similar to React's `useState`, while Preact uses a mutable `.value` property on the signal object. Preact's signals are designed to be framework-agnostic, whereas Solid's are deeply integrated into its rendering system, which is built entirely around fine-grained reactivity without a VDOM. - In Angular, the adoption of signals is a key part of the roadmap to enable zoneless applications. This will allow Angular to perform highly optimized, fine-grained change detection by tracking dependencies through signals, eventually removing the need for the Zone.js library that currently handles change detection automatically.

Get your own daily briefing

Scout delivers personalized news, insights, and conversations tailored to your role and industry.

Download on the App Store

Shared from Scout - Be the smartest in the room.