component@0.5.0
Breaking Changes📦 remixView on GitHub →
⚠ 2 breaking✨ 6 features🐛 3 fixes🔧 14 symbols
Summary
This release introduces significant improvements to Server-Side Rendering capabilities, including out-of-order streaming and selective hydration. It also includes breaking changes to the `handle.update` signature and virtual root teardown methods for better consistency.
⚠️ Breaking Changes
- The signature of `handle.update()` has changed: it now returns `Promise<AbortSignal>` instead of accepting an optional task callback. To run synchronous code during the flush phase, use `handle.queueTask()` instead of relying on the return value or timing of `handle.update()`.
- Virtual root teardown methods have been renamed: `root.remove()` is now `root.dispose()` (for roots created by `createRoot()` and `createRangeRoot()`), and `app.remove()` is now `app.dispose()` when using `run(...)`.
Migration Steps
- Update calls to `handle.update()` to await the returned promise and use the returned `AbortSignal` if necessary, removing the task callback argument.
- Replace all usages of `root.remove()` with `root.dispose()` for virtual roots.
- Replace all usages of `app.remove()` with `app.dispose()` when using `run(...)`.
✨ New Features
- Added support for SSR with out-of-order streaming, selective hydration, async frames, and granular UI refresh.
- Introduced new component: `<Frame>`.
- Added new function: `renderToStream(node, { resolveFrame })`.
- Added new entry point: `clientEntry`.
- Added new function: `run(document, { loadModule, resolveFrame })`.
- Added new properties to handle: `handle.frame` and `handle.frames`.
🐛 Bug Fixes
- Fixed host prop removal to correctly remove reflected attributes while resetting runtime form control state, preventing empty-attribute regressions.
- Fixed updates when nested components are replaced with elements.
- Harden SVG attribute normalization to consistently preserve canonical SVG attribute names across SSR, hydration, and client DOM updates, fixing casing issues for filter and geometry attributes.