165 wires and counting

$ follow Vue.js

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

or

fair warning: these emails are deeply technical. diffs, version numbers, CVEs, benchmark deltas. if that's not your idea of a good read, this isn't your newsletter.

Folds into your digest — weekly by default, monthly if you prefer. Unsubscribe in one click.

$ status

wire 2026-11-06
stories 37

© 2026 RepoJournal Home Showcase How it works Privacy

$ the-wire · showcase

Test-utils confines stubs to one app, Suspense stops leaking unmount hooks

By RepoJournal · Filed · About Vue.js · Composed from the cited sources · methodology

vuejs/test-utils fixed a stub leak that contaminated every app rendered after a shallowMount in the same file, and vuejs/core stopped unmounting a pending Suspense branch from firing hooks the boundary had already discarded.

fix: only apply stubs to the app being rendered vuejs/test-utils

by ValentinYoushkevich

mount, shallowMount and renderToString installed their stubs through Vue's global transformVNodeArgs and never removed them, so a plain createApp or createSSRApp rendered later in the same test file still produced <b-loading-stub> or <transition-stub> output even after unmount(). The stubs now apply only to the app being rendered, which should fix tests that only passed or failed depending on f...

fix(suspense): drop the unmount hooks of a pending branch when the boundary is unmounted vuejs/core

by edison1105

edison1105's fix drops the unmount hooks of a pending Suspense branch when the boundary itself is unmounted, and late events from discarded components are now ignored while deferred cleanup effects still run on resolve. Relevant if you render Suspense content that can be torn down before it ever becomes visible.

fix(#2541): stub globally registered components by their registration key vuejs/test-utils

by ValentinYoushkevich

The stubs transformer matched only the keys of locally registered components and the component name, so a component registered via app.component() under a different key could not be stubbed by that key. It now matches the registration key too, meaning stubs: { NButton: true } works for naive-ui and stubs: { AButton: true } for Arco instead of silently rendering the real component.

feat: add VueWrapper.emit vuejs/test-utils

by ValentinYoushkevich

wrapper.emit(eventName, ...args) is a shorthand for wrapper.vm.$emit that returns nextTick(). It replaces the findComponent(Child).vm.$emit(...) pattern for simulating child-emitted custom events, which trigger cannot dispatch since it only handles DOM events.

fix(client): improve timeline layers a11y vuejs/devtools

by Singmin

The devtools client reworked three interaction surfaces for keyboard and screen-reader users: timeline layers now render selection as a native button with aria-pressed instead of a click-only list item, with collection controls revealed on focus within the row; state entry toggles and pages route actions got matching fixes. Alongside, vuejs/core merged four Renovate dependency PRs (eslint to ^1...

Quick answers

What shipped in Vue.js on November 6, 2026?
vuejs/test-utils fixed a stub leak that contaminated every app rendered after a shallowMount in the same file, and vuejs/core stopped unmounting a pending Suspense branch from firing hooks the boundary had already discarded. In total, 15 commits, 20 pull requests, and 2 releases landed.
Who contributed to Vue.js on November 6, 2026?
6 developers shipped this update, including ValentinYoushkevich, renovate, edison1105, Singmin, Eric, and Ninad Sutrave.
What were the notable Vue.js updates?
fix: only apply stubs to the app being rendered, fix(suspense): drop the unmount hooks of a pending branch when the boundary is unmounted, and fix(#2541): stub globally registered components by their registration key.