๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
by vuejsTypeScript
Last 12 weeks ยท 96 commits
3 of 6 standards met
Problem An error thrown while notifying an effect leaves half-way through the notify buffer, so the rest of the batch is not notified and is instead delivered by the next unrelated write. The sync watcher throws from the dirty check inside , which escapes . 's other subscribers โ including a component's render effect โ are never notified, so the view keeps the previous content until some unrelated reactive write happens to flush the stale buffer: Clicking the button throws and the paragraph still says . Measured with the same app in : Root cause walks : Verification on the final revision: โ 61 files, 1580 passed; the same command with only the source change reverted โ 1576 passed with the 4 tests above failing (browser/e2e suites are not runnable in this environment). (), , and oxlint (strict config from ) are clean; oxlint reports the same single pre-existing finding on before and after. Out of scope The effect whose threw keeps its flag, so the next clears its flags without re-queueing it โ in the repro above the sync watcher never fires again even after is restored to an object. That behaviour is identical before and after this change (measured on both revisions); it is a flags-lifecycle question in , not the notify buffer, so I left it alone here. Happy to look at it separately if that is useful. ref #15674
When a Vapor component renders a VDOM component, the VDOM render runs with the Vapor instance as the current instance. in a functional component prefers the current instance over the rendering one, so it misses what the VDOM parent (or the Vapor component itself) provided. A Vapor page using an idux menu throws here, because destructures . Playground: both sides should show "provided by Menu". VDOM never has a current instance while it patches, since only sets it around . The interop now clears it around every VDOM mount, patch and hydrate it starts, instead of setting the Vapor parent. That covers vnodes, components, slots and outlet fallbacks.
Since #15201 moved v-model after the other operations of an element, a listener written next to a native is added before v-model's own one. So it runs first and reads the old value: `createdvapor:type@[event]v-on="obj"v-bind="$attrs"setDynamicProps@change="getJournals"v-model` value, so changing the filter loads the journals of the previous one.
Repository: vuejs/core. Description: ๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web. Stars: 54460, Forks: 9218. Primary language: TypeScript. Languages: TypeScript (96.8%), JavaScript (1.6%), HTML (1.1%), Vue (0.4%), CSS (0%). License: MIT. Homepage: https://vuejs.org/ Latest release: v3.5.43 (1w ago). Open PRs: 100, open issues: 819. Last activity: 6h ago. Community health: 62%. Top contributors: yyx990803, dependabot-preview[bot], renovate[bot], edison1105, sxzz, HcySunYang, pikax, underfin, dependabot[bot], Alfred-Skyblue and others.