vue中使用v-model绑定值更改时, 需要再次点击才能显示在input中

  1. 当我的组件emit后更改_value的值, 此时已经修改成功了, 可是并没有显示在input中,需要我在再次点击input才能看到刚才修改的值

// 页面中
<input type="text" @click.stop="open($event)" v-model="_value">
<vue-component :value="_value" @change="change"></vue-component>
data() {
    return {
        _value: ''
    }
},
methods: {
    change (val) {
        this._value = val;
    }
}

// vueComponent 组件中
this.$emit('change', val);
阅读 14k
3 个回答

使用this.$emit('input', val)

data: {
    return {
        _value: ''
    }
}

应该是

data() {
    return {
        _value: ''
    }
}

用vue的watch来监听值得变化而不是change

clipboard.png

推荐问题