账号密码登录
微信安全登录
微信扫描二维码登录

登录后绑定QQ、微信即可实现信息互通

手机验证码登录
找回密码返回
邮箱找回 手机找回
注册账号返回
其他登录方式
分享
  • 收藏
    X
    vue input校验实现输入框实时更新遇到的问题
    29
    0

    问题描述,在使用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赋值第一次有效果后面无效**

    3
    打赏
    收藏
    点击回答
    您的回答被采纳后将获得:提问者悬赏的 11 元积分
        全部回答
    • 0
    更多回答
    扫一扫访问手机版
    • 回到顶部
    • 回到顶部