@qwik.dev/core@2.0.0-beta.32
Breaking Changes📦 qwikView on GitHub →
⚠ 1 breaking✨ 4 features🐛 3 fixes🔧 3 symbols
Summary
This release introduces significant updates to event handling markers (`passive:` and `capture:`) and adds `Temporal` serialization support. A breaking change in `useAsync$` renames the `interval` option to `expires`.
⚠️ Breaking Changes
- The `interval` option of `useAsync$` has been renamed to `expires`. Users should update calls to `useAsync$` to use `expires` instead of `interval`.
Migration Steps
- Rename the `interval` option to `expires` when using `useAsync$`.
- If using `useAsync$`, consider adding the new `poll` option to control re-running behavior upon expiration.
✨ New Features
- Qwik now supports `passive:eventname` markers for JSX event handlers, usable with matching `on*$/document:on*$/window:on*$` listeners for passive browser handling (e.g., touch events, scroll).
- Added `Temporal` serialization support.
- The optimizer now supports inline `@qwik-disable-next-line` hints to suppress specific diagnostics (like `preventdefault-passive-check`) for the next line.
- Qwik now supports `capture:eventname` markers for JSX event handlers to force event execution in the capture phase.
🐛 Bug Fixes
- Added `allowStale: false` option to AsyncSignal and routeLoader$. When false, invalidation clears the previous value, causing reads to suspend instead of returning stale data.
- Fixed `preventdefault:*`, `stoppropagation:*`, and `sync$` event work to run synchronously in the loader for all nested events.
- Preserved browser event execution order for async lazy-loaded handlers.