猿问

vue input校验实现输入框实时更新遇到的问题

问题描述,在使用vue input校验输入内容并且实时更新输入框不生效

<div class="app">

    <input v-bind:value="something" v-on:input="update">

</div>

    var app = new Vue({

        el: ".app",

        data: {

            something: '123'

        },

        methods: {

            update: function (e) {

                this.something = 111; //只会第一次输入后生效

                e.target.value = 111; //如果不手动将value设置111,不会实时更新input

            }

        }

    })

**问题在于,使用this.something = 111这一句后,在第一次输入时,input中内容确实变成了111

但是随后的输入input中的内容就不是111了,随着输入内容改变了(难道第一次出发了watcher,随后缓存了?是为了避免每次input更改触发watcher而引起的性能损耗么?),只有手动设置e.target.value = 111才能生效,所以为什么会第一次生效而后不会生效呢?**


**新增:重申下,我问的不是实现方式,而是为何会出现这种现象的原因,不要再说什么v-model,v-model就是:value="som" @input="som = $event.target.value" 的语法糖,

其中som = $event.target.value其实就是等于上面的e.target.value = 111,问题在于为何直接为data赋值第一次有效果后面无效**


倚天杖
浏览 5143回答 2
2回答

摇曳的蔷薇

用v-model
随时随地看视频慕课网APP

相关分类

JavaScript
我要回答