$ the-wire · showcase
Scroll restoration goes customizable, devtools ships an agent package
By RepoJournal · Filed · About Vue.js · Composed from the cited sources · methodology
Vue Router opens experimental scroll restoration to custom capture listeners while its new 50-page fixtures put type-check and build times under measurement, Vue Devtools adds a separate agent package and keyboard-accessible panels, and test-utils fixes stubbing and functional-component lookups.
feat(experimental): customize scroll restoration capture listeners vuejs/router
Custom capture listeners with an abort signal now drive scroll capture; the default pagehide and visibilitychange setup is exported, so custom listeners replace the defaults and are cleaned up rather than stacking on top of them. This is experimental and the API can still move.
perf: add router type-check and build benchmarks vuejs/router
Matching 50-page fixtures now cover classic routes, auto-routes, auto-resolver, and auto-resolver with props, with vue-tsc and build benchmarks over source quoted in the PR body as "50 navigable pages across 10 work areas." Consumers get no behavior change; the router maintainers get numbers for future size and type-check regressions.
feat: agent package vuejs/devtools
Devtools gains a standalone agent package alongside the timeline layout refactor and a11y work on state section headings and the app list, both of which are now keyboard accessible.
fix(#2333): keep props from mixins and extends in stubs vuejs/test-utils
shallowMount and stubs: { Child: true } only copied a component's own props, so props declared in mixins or extends landed in $attrs and .props('msg') returned undefined under test. The stub now merges them with Vue's precedence (own > mixins > extends).
fix: find elements and components inside multi-root functional components vuejs/test-utils
findComponent on a functional component returning an array used to wrap the fragment anchor, which meant html() and text() dropped nested roots and slots and find, findAll, get, and findComponent returned nothing. Wrappers now read the functional instance's current subTree and collect its roots.
feat(compiler): return errors and warnings from transform vuejs/vue-jsx-vapor
Elsewhere, the vue-jsx-vapor transform now returns errors and warnings as plain data instead of forcing you to capture them through onError and onWarn across the napi boundary; the callbacks remain for compatibility and still receive Error instances.