Vue v-model.lazy or @change does not update my Vue data
Stefan Bogdanescu
Founder & Senior Architect · 2026-06-29
# Mastering Vue Reactivity with External DOM Changes: Solving the `v-model` Dilemma
As senior developers, we often encounter situations where the dynamic interaction between the Document Object Model (DOM) and a reactive framework like Vue creates unexpected hurdles. The scenario you've describedâwhere changes made directly to an element's `innerHTML` (especially via external inputs like voice recognition) do not trigger updates in your Vue data bound by `v-model`, `@change`, or `v-model.lazy`âis a common pain point.
This issue usually stems from the fact that Vueâs reactivity system primarily tracks changes made *within* its component lifecycle or through standard, explicit event bubbling. When external JavaScript directly manipulates the DOM, Vue might not register this modification as a reactive state change unless explicitly notified.
Let's dive into why this happens and explore robust solutions for synchronizing your application state with complex DOM interactions in Vue.
## The Reactivity Gap: Why Standard Bindings Fail
When you use `v-model` on an `` or `