
"The headline change in Solid 2.0 is that async is now first-class. Computations can return Promises and the reactive graph handles suspension and resumption automatically. This means developers can pass a promise directly into createMemo and have the framework manage it, removing much of the manual orchestration that was previously required. Alongside this, Loading has been redesigned to handle only initial readiness, showing a fallback while a subtree loads for the first time, then keeping the UI stable during subsequent updates."
"Pending state is now expressed through isPending(() => expr) rather than tearing down and rebuilding the interface. Mutations also receive dedicated primitives. The new action() function combined with createOptimisticStore lets developers express optimistic updates, server writes and data revalidation as a single coherent flow. Derived state becomes a first-class primitive through function forms like createSignal(fn) and createStore(fn), and updates are now microtask-batched with reads only updating after a flush() call, making the scheduling model fully deterministic."
"The release includes several breaking changes. Index is replaced by <For keyed={false}>, and For children now receive accessors. createEffect has been split into separate compute and apply phases, onMount is replaced by onSettled, and store setters use draft-first semantics by default. The use: directive system has been removed in favour of ref directive factories."
"SolidJS, the fine-grained reactive JavaScript framework, has released SolidJS 2.0 Beta, delivering a comprehensive overhaul of its async handling, reactivity model and developer experience. The release skipped the planned Alpha phase entirely after the team spent an extended period iterating in the Experimental stage, with creator Ryan Carniato noting that "most of the goalposts within Alpha don't appear relevant enough to warrant their own phase.""
SolidJS 2.0 Beta delivers a comprehensive overhaul of async handling, reactivity, and developer experience. Async is now first-class, allowing computations to return Promises and enabling the reactive graph to suspend and resume automatically. Developers can pass Promises directly into createMemo, reducing manual orchestration. Loading is redesigned to show a fallback only during initial readiness, while keeping the UI stable during later updates. Pending state is expressed with isPending(() => expr) rather than tearing down and rebuilding. Mutations gain dedicated primitives via action() and createOptimisticStore for optimistic updates, server writes, and revalidation in one flow. Derived state becomes first-class through function forms like createSignal(fn) and createStore(fn), and updates are microtask-batched with reads updating only after flush(). Several breaking changes include replacing Index with <For keyed={false}>, changing For children access, splitting createEffect into compute and apply phases, replacing onMount with onSettled, and removing use: in favor of ref directive factories.
Read at InfoQ
Unable to calculate read time
Collection
[
|
...
]