Change8

component@0.5.0

Breaking Changes
📦 remixView on GitHub →
2 breaking6 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

  1. Update calls to `handle.update()` to await the returned promise and use the returned `AbortSignal` if necessary, removing the task callback argument.
  2. Replace all usages of `root.remove()` with `root.dispose()` for virtual roots.
  3. 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.

Affected Symbols