The date-picker example is a misrepresentation of Vue’s two-way binding.
Conan Crawford

Thanks for making such an effort in providing a modified example. Although I haven’t tested it too, I essentially seems that you stores localValue in component’s state and passed it to the input. I think this will create problems: (1) because that input is can be modified by the plugin (like removed from dom or hidden and changed in some other way, so attaching v-model on it can be an issue. (2) in the watcher, I don’t see much difference from my code (I may be wrong). I was comparing oldValue to newValue, you are comparing it to localValue.

I feel I might not have provided the best example, but essentially I wanted to make a point that in Vue, you try to keep v-model in sync, while in React, flow in unidirectional. If this was implemented in React, we would be only listening to event on the plugin and calling the eventListener passed as prop, and possibly updating plugin’s value on mount.