Migrating to Solid.js v2.0.0-beta.0
Version v2.0.0-beta.0 introduces 4 breaking changes. This guide details how to update your code.
Released: 3/3/2026
⚠️ Check Your Code
If you use any of these symbols, you need to read this guide:
`Index``For``createEffect``onMount``storePath``use:` directives`ref` directive factories`classList``class`Breaking Changes
●Issue #1
List rendering: `Index` is replaced by `<For keyed={false}>`, and `For` children now receive accessors (`item()` / `i()`) instead of direct values.
●Issue #2
Effects & lifecycle: `createEffect` is split into compute and apply stages. `onMount` is replaced by `onSettled`, which can now return a cleanup function.
●Issue #3
Stores: Setters are now draft-first by default. `storePath(...)` is introduced as an opt-in helper for users who prefer the old path-style ergonomics.
●Issue #4
DOM: `use:` directives are removed; users must switch to using `ref` directive factories (and arrays for composition).
Migration Steps
- 1Replace usage of `Index` with `<For keyed={false}>` and update children to use accessors like `item()` and `i()`.
- 2Replace `onMount` with `onSettled` and adapt cleanup logic if necessary.
- 3Review store setter usage; setters are now draft-first. Use `storePath(...)` if old path-style ergonomics are required.
- 4Remove all usages of `use:` directives and replace them with `ref` directive factories.
Release Summary
Solid 2.0 enters the beta stage, introducing major architectural shifts like first-class async support, deterministic batching, and a rewritten signals implementation. This release includes several breaking changes related to control flow, effects, and DOM directives.
Need More Details?
View the full release notes and all changes for Solid.js v2.0.0-beta.0.
View Full Changelog