在使用v-model时,如果用中文输入法输入中文,一般在没有选定词组前,也就在拼音阶段,Vue是不会更新数据的,当敲下汉字时才会触发更新。如果希望总是实时更新,可以用@input来代替v-model.

 <div id="app">
        <input type="text" v-model.lazy="message" placeholder="请输入">
        <p>输入的内容是:{{ message }}</p>
        <input type="text" @input="handleInput" placeholder="请输入">
        <p>输入的内容是:{{ message1 }}</p>
    </div>

    <script type="text/javascript">
        var app = new Vue({
            el: '#app',
            data: {
                message:'',
                message1:''
            },methods:{
                handleInput:function(e){
                    this.message1 = e.target.value //原生的DOM事件
                }
            }
        })
    </script>

而v-model也有修饰符,.lazy会转变为在change事件中同步,这时。message并不是实时改变,而是在失去焦点和按回车时才会更新

Logo

前往低代码交流专区

更多推荐