RepoJournal
Vue.js

@vuejs

Vue + the surrounding frontend ecosystem

Keep up with Vue.js in about 3 minutes a day: what actually shipped — the commits, pull requests, releases, and security advisories that matter.

One email a day. Unsubscribe in one click.

Pick a date

Topics: JavaScript Full archive →

The Wire · Showcase

VUE PATCHES TELEPORT RACE CONDITION THAT BREAKS SUSPENSE

By RepoJournal · Filed · About Vue.js

A critical fix for deferred teleports inside Suspense prevents stray DOM updates when content is discarded before mount, solving a class of silent failures that hit production apps.

Vue core shipped two compiler fixes overnight that address real-world edge cases in rendering pipelines. The teleport fix [1] closes a gap where discarded content could still attempt to mount or unmount when Suspense async operations were abandoned, potentially leaving orphaned DOM nodes. Alongside that, the v-for key handling [2] stops the compiler from double-processing memo and key expressions, cutting unnecessary work and fixing inconsistent prefix handling in template v-for scenarios. A third critical fix [3] ensures server-renderer now properly propagates sync errors from ssrRenderSuspense, resolving issues that silently swallowed errors in Nuxt deployments. On the performance side, runtime-dom's event handler dispatch [4] eliminates per-dispatch allocations and wrapper closures for array handlers, a targeted win for high-frequency event scenarios. Language-tools also patched grammar scope leakage in capitalized tags [5], fixing IDE highlighting pollution. Router landed three feature commits: repeatable params in subsegments [6], string-based param parsers [7], and experimental types config override support [8] for stricter type checking in projects that need it.

One email a day. Unsubscribe in one click.

Action items

References

  1. [1] fix(teleport): skip child unmount when pending mount discarded (#14876) ↗ vuejs/core
  2. [2] fix(compiler-core): avoid double processing v-for keys with v-memo ↗ vuejs/core
  3. [3] fix(server-renderer): propagate sync errors from `ssrRenderSuspense` (#14804) vuejs/core
  4. [4] perf(runtime-dom): optimize array event handler dispatch ↗ vuejs/core
  5. [5] fix(vscode): prevent grammar scopes leakage in capitalized tags ↗ vuejs/language-tools
  6. [6] fix(experimental): repeatable params in subsegments vuejs/router
  7. [7] feat: allow string as a param parser for convenience vuejs/router
  8. [8] feat: override useRouter() return with experimental types config vuejs/router

Quick answers

What shipped in Vue.js on May 28, 2026?
A critical fix for deferred teleports inside Suspense prevents stray DOM updates when content is discarded before mount, solving a class of silent failures that hit production apps. In total, 18 commits, 10 pull requests, and 1 releases landed.
Who contributed to Vue.js on May 28, 2026?
3 developers shipped this update, including pont1s, KazariEX, and wyf027.
What were the notable Vue.js updates?
fix(teleport): skip child unmount when pending mount discarded (#14876), fix(compiler-core): avoid double processing v-for keys with v-memo, and fix(server-renderer): propagate sync errors from `ssrRenderSuspense` (#14804).

More from @vuejs

Daily updates, in your inbox

Follow Vue.js

Keep up with Vue.js in about 3 minutes a day: what actually shipped — the commits, pull requests, releases, and security advisories that matter.

or

One email a day. Unsubscribe in one click. Read a past issue →

Elsewhere on the wire

Want every project, not just this one?