两个输入框都用 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 的值都是保持一致的。

value: {{value}}
text: {{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)
    },
  },
})