RepoJournal

$ cat vuejs/week/2026-10-12.log

Vue.js

Vue.js

the week in review · Oct 12 – Oct 18, 2026

VitePress local search segments Chinese and Japanese

By RepoJournal · composed from the cited sources · human-reviewed weekly · methodology

♥

Vue core also landed a batch of runtime and compiler fixes, from root render flushing to defineModel prop options.

88 commits 72 PRs merged 3 releases 7 briefings covered

all vuejs reviews →

fix(search): segment Chinese and Japanese text in local search vuejs/vitepress

by Tomato-1101

Local search indexed with MiniSearch's default tokenizer, which splits only on spaces and punctuation, so a whole CJK sentence became one term and queries like 搜索 or 検索 matched nothing inside it. Sites with Chinese or Japanese docs need this before their local search is usable at all.

fix(runtime-core): only flush jobs queued by the root render itself vuejs/core

by edison1105

A root render() drains the full pre- and post-flush queues, so mounting an app inside a pre watcher ran every other pending pre job nested in that component. The fix limits the flush to jobs queued by the root render itself, which changes scheduling behavior for code that mounts apps from watchers.

fix(runtime-core): keep async placeholder for block patching and pending component updates vuejs/core

by ondrhn

Suspense-adjacent edge case: patchBlockChildren took its patch container from oldVNode.el, but an unresolved async setup() has only a placeholder comment, so the lookup fell back to the block root and mispatched nested content. If you replace vnodes around async components inside nested elements, this is the one to upgrade for.

fix(compiler-sfc): error when defineModel prop options reference a destructured prop vuejs/core

by lazerg

defineModel() moves prop options into the component's props, but the props destructure transform still rewrote identifiers inside them, producing broken calls like _useModel(__props, "modelValue"__props.defaultValue). A default reading a destructured prop now errors at compile time instead of shipping a runtime failure.

fix(server-renderer): propagate async setup errors vuejs/core

by edison1105

Server rendering now reports asynchronous setup and rendering failures to the caller even while another part of the page is still rendering, per the PR description. SSR errors that previously vanished into a partially rendered page surface where your error handling can see them.

feat(experimental): customize scroll restoration capture listeners vuejs/router

by posva

Scroll capture listeners become customizable with an abort signal, and the default pagehide and visibilitychange setup is exported. Experimental API, so treat it as a hook for unusual navigation setups rather than a stable contract.

dx(compiler-core): hint at defineModel() ref when v-model is used on a prop (fix #13280) vuejs/core

by parsajiravand

Using v-model on the prop name declared by defineModel() triggered X_V_MODEL_ON_PROPS with advice about the v-bind plus v-on pattern, which does not apply. The compiler now points at the ref defineModel() returns.

fix(kit): scope plugin hooks per app vuejs/devtools

by webfansplz

When several Vue apps on one page register the same plugin id (Pinia does this per app), the devtools kit kept one adapter and overwrote its app, so hook payloads were rejected for every other app. Alongside: test-utils fixed union-typed props in mount, stubs kept props from mixins and extends, devtools fixed v9 app scoping, and eslint-plugin-vue added a content-placement rule and moved its rul...

$ ls vuejs/week/ # the briefings behind this review

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.

all vuejs reviews →