两个输入框都用 v-model 绑定在 text 变量上
1. 先在 input 框中输入一些文字,会发现通过 v-model 绑定的 text 值会一起改变。
2. 再点击【改变 value】按钮,通过 js 改变 input 的值,会发现 input 的 value 改变了,但输入框与 text 并无变化;但是注意 el-input 中的值改变了,但是它绑定的也是 text,而 text 并无变化,所以这个值只是一个假象。
3. 这时再任意改变一下输入框中的内容,会发现绑定又回来了
4. 如果点击【改变 value 并触发 input 事件】按钮,会发现无论何时,value 跟 text 的值都是保持一致的。
// js 源码 new Vue({ el: '#app', data() { return { text: '', value: '' } }, methods: { changeValue() { this.$refs.input.value = '新的值' document.querySelector('#elInput').value = '新的值' this.value = this.$refs.input.value }, changeAndDispatch() { var el = this.$refs.input el.value = '新的值' this.value = el.value // 手动触发 input 事件 var event = new InputEvent('input') el.dispatchEvent(event) }, }, })