$ the-wire · showcase
RouterView scopes useRoute to its route prop, and eslint-plugin-vue gains a content-placement rule
By RepoJournal · Filed · About Vue.js · Composed from the cited sources · methodology
vuejs/router makes useRoute() resolve to the closest RouterView's route prop, a behavior change for descendants of a RouterView with route set, while eslint-plugin-vue adds no-content-outside-block and moves nine deprecated-API rules to TypeScript.
fix(router-view): useRoute() returns the route prop in descendants vuejs/router
Descendants of a <RouterView> with a route prop now get that route from useRoute() instead of the global one, and RouterLink active classes inside the view follow it; without the prop, RouterView keeps the route provided above it, so nothing changes. The PR flags it as a behavior change inside such views, and a new guide page, "Displaying a different route", documents the modal pattern.
feat: add `vue/no-content-outside-block` rule vuejs/eslint-plugin-vue
Stray text left outside template blocks now gets reported, with removal offered as a suggestion rather than an autofix, since stray text is usually code meant for a block and --fix deleting it silently felt wrong. Comments and custom blocks are left alone because vue-eslint-parser keeps comments in documentFragment.comments rather than children.
refactor: migrate template `no-deprecated-*` rules to TypeScript vuejs/eslint-plugin-vue
Nine template no-deprecated-* rules (filter, functional-template, html-element-is, inline-template, scope-attribute, slot-scope-attribute, v-bind-sync, v-is, v-on-native-modifier) move to TypeScript, chosen because they depend only on utils and the shared syntax helpers, keeping the diff reviewable.
ci: workaround for legacy npm v10 bug (#3168) vuejs/eslint-plugin-vue
CI picks up a workaround for a bug in legacy npm v10, which FloEdelmann landed separately from the rule work.
Action items