Change8

@qwik.dev/core@2.0.0-beta.30

Breaking Changes
📦 qwikView on GitHub →
1 breaking2 features🐛 6 fixes🔧 5 symbols

Summary

This release introduces the Each component and splits the optimizer into a separate package to reduce download size. A major breaking change affects useTask/useVisibleTask cleanup functions, which now await cleanup Promises by default.

⚠️ Breaking Changes

  • useTask() and useVisibleTask() now await their cleanup functions before running the next invocation. To prevent this awaiting behavior, do not return a cleanup Promise from these functions (and ensure errors are handled manually).

Migration Steps

  1. Review usages of useTask() and useVisibleTask(). If you were returning a cleanup function that returned a Promise, and you do not want the next invocation to wait for it, modify the cleanup function to return nothing or a non-Promise value.

✨ New Features

  • Introduce Each component for fast list operations.
  • The Qwik optimizer is now in a separate package (@qwik.dev/optimizer), reducing the download size for the main qwik package.

🐛 Bug Fixes

  • Prevented auto-exports for variables shadowed inside catch, do-while, switch, or labeled blocks.
  • Imported CSS passed to useStyles$ is now deduplicated.
  • useSerializer$ can now handle thrown Promises during initialization.
  • Exported variables passed to $ functions are no longer incorrectly inlined into segments.
  • Fixed sibling node duplication when toggling elements with dangerouslySetInnerHTML.
  • SPA navigation should no longer be skipped on the webkit engine.

Affected Symbols