Vue 3 中 v-model 绑定自定义组件时,为什么输入框会闪烁?
在 Vue 3 项目里封装表单组件时,经常会把 v-model 透传到内部的 <input> 或 <select> 上,比如做一个 BaseInput 组件,父组件用 v-model="form.name" 传值。实际开发中会遇到一种情况:快速输入时输入框内容偶尔回退、光标跳到末尾,或者明明数据已经变了但界面上一闪之后才同步。这类问题多半不是 Vue 的响应式坏了,而是自定义组件内部对 modelValue 的处理方式引入了额外的状态副本,导致数据流在父子之间来回震荡。下面从一个可复现的例子出发,看看问题是怎么产生的,以及如何用 computed 的 getter/setter 或直接透传事件...