Vue 3.4 Released: A 2x Faster Parser and Stable defineModel
Vue 3.4 rewrote its template parser to be twice as fast, refactored the reactivity system for more efficient computed properties, and stabilised the defineModel macro.
Historical Archive. This article documents an event from 2023 and is preserved with its original date for reference. It is not current news, and details may have changed since publication.
What happened
Vue 3.4, nicknamed Slam Dunk, was released on December 28, 2023, per the official Vue blog post by Evan You. The release combined substantial internal improvements with a set of quality-of-life API changes.
A 2x faster parser
Vue 3.4 completely rewrote its template parser. The previous recursive-descent parser relied on many regular expressions and look-ahead searches; the new parser uses a state-machine tokenizer, based on the one in htmlparser2, that iterates through the template string only once. The result is consistently twice as fast for templates of all sizes and 100% backwards compatible. Combined with other compilation improvements, single-file-component compilation benchmarks showed roughly a 44% improvement, which also benefits tooling like Volar and vue-tsc.
More efficient reactivity
The release shipped a substantial refactor of the reactivity system aimed at improving how efficiently computed properties re-compute. After the change, effects that depend on a computed value only fire when the computed result has actually changed, rather than every time a dependency changes. Multiple computed changes and array operations like shift, unshift and splice now trigger synchronous effects only once, reducing unnecessary re-renders while retaining backwards compatibility.
API improvements
Vue 3.4 stabilised defineModel, a script-setup macro that simplifies building components that support v-model, previously shipped experimentally in 3.3. It also added a v-bind same-name shorthand so an attribute like :id can be written when the value comes from a variable of the same name, and improved hydration-mismatch error messages with clearer wording and the offending DOM node.
Why it mattered
The faster parser and reactivity refactor delivered real build-time and runtime efficiency gains across Vue projects, while the stabilisation of defineModel removed boilerplate from a very common component pattern. Vue 3.4 exemplified the framework's approach of pairing performance work with everyday ergonomic wins.
Related on Skillo
See also: Vue 3.3 and its TypeScript improvements, Vue 3.5's reactive props destructure.
Sources
Published date reflects the original event date (2023-12-28). This article is original Skillo editorial written from the sources above; facts were verified in September 2026.
Written by
Skillo Staff
0 Comments
Sign in to join the discussion.
No comments yet. Be the first to share your thoughts.