Replies: 5 comments 8 replies
-
|
Congrats! 🎉 |
Beta Was this translation helpful? Give feedback.
-
|
what a lovely day,You finally decided to test the version. |
Beta Was this translation helpful? Give feedback.
-
|
Am I missing something or I cannot install the web |
Beta Was this translation helpful? Give feedback.
-
|
Congrats! |
Beta Was this translation helpful? Give feedback.
-
|
Can you get rid of this stupid React-like syntax where you need two variables for one reactive value? |
Beta Was this translation helpful? Give feedback.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
-
I know you all probably weren't expecting this announcement next. But after reviewing the roadmap, we spent so long iterating in the Experimental phase, most of the goalposts within Alpha don't appear relevant enough to warrant their own phase. Instead, I'm happy to announce today that Solid 2.0 effort enters the beta stage. There will be bugs and rough edges we need to work through with the ecosystem. The focus will be on building documentation, and strategies for migration while we work through extending 2.0 into the wider ecosystem.
The Big Ideas
<Loading>is for initial readiness: show a fallback while a subtree can’t produce UI yet — then keep the UI stable while background work happens.isPending(() => expr)tells you when “refreshing…” work is in flight without tearing down the UI.action(...)+ optimistic primitives (createOptimistic,createOptimisticStore) let you write “optimistic → await → refresh” as one coherent flow.createSignal(fn)andcreateStore(fn)make derived-but-writable patterns explicit and composable.flush()only when you truly need “settle now”).use:directives are replaced byrefdirective factories (with array composition), andclassListis folded intoclass.Tiny Examples
Stable async UI:
<Loading>for first render,isPendingfor revalidationMutations that read clearly:
action+ optimistic store +refreshBatching that’s deterministic: reads update after
flush()Breaking changes you’ll notice quickly
Indexis replaced by<For keyed={false}>, andForchildren receive accessors (item()/i()).createEffectis split (compute → apply), andonMountis replaced byonSettled(which can return cleanup).storePath(...)exists as an opt-in helper if you want the old path-style ergonomics.use:directives are removed; userefdirective factories (and arrays) instead.Try the beta
Start with the migration guide:
documentation/solid-2.0/MIGRATION.mdThen dive into specific topics when you need details:
documentation/solid-2.0/01-reactivity-batching-effects.mddocumentation/solid-2.0/02-signals-derived-ownership.mddocumentation/solid-2.0/03-control-flow.mddocumentation/solid-2.0/04-stores.mddocumentation/solid-2.0/05-async-data.mddocumentation/solid-2.0/06-actions-optimistic.mddocumentation/solid-2.0/07-dom.mdConclusion
Today we have an overview of what has changed and 7 RFCs to describe each area in more detail. Noticeably absent are features marked as experimental in 1.0 like enableExternalSource and SuspenseList. These will be fleshed out during the beta phase but does not block us on core mechanics. Similarly the 2.0 is missing dev hooks to enable dev tools at this point because the signals implementation has been rewritten from the ground up.
We have also updated Vite Plugin Solid which will find on npm under the
nexttag. Over the next several days I expect to see more 1st party updates following a similar patterns. This has been a long time coming but I couldn't be more excited to finally put in your hands what we've been working on for the last couple years.Best Regards,
@ryansolid
This discussion was created from the release v2.0.0 Beta - The is Over.
Beta Was this translation helpful? Give feedback.
All reactions