Vue学习——v-model双向绑定的原理

本文深入探讨了Vue中v-model实现双向绑定的机制,通过实例代码展示了如何不使用v-model,而是通过v-bind和v-on来手动实现相同效果。通过v-bind将文本框值绑定到data中的msg,再利用v-on监听input事件更新msg,从而达到数据和视图同步的目的。无论使用直接赋值还是方法处理,都能实现双向绑定的功能。
摘要由CSDN通过智能技术生成

Vue中的v-model可以实现表单元素和数据之间的双向绑定,即修改表单的值,data中对应变量的值也会被修改。在data对应变量中修改值,被绑定的表单值也会被修改;所以称之为双向绑定。

首先我们在文本框中使用v-model绑定一个data中已声明的数据变量msg,h4标签中显示msg(以便观察数据变量是否改变)

<div id="ab">
     <input type="text" v-model="msg">
     <h4>{{msg}}</h4>
 </div>

这是js中Vue的代码

<script>
        const app = new Vue({
            el:'#ab',
            data:{
                msg:'起飞'
            }
        })
    </script>

运行时发现文本框中的数据被更改时,对应的数据变量也会被更改
在这里插入图片描述

其实它的实现原理很简单,就是先使用v-bind将文本框的value绑定给数据变量,实现变量改变,文本框值也随之改变的单向绑定;然后使用v-on绑定文本框的值改变事件,最后将事件对象中的文本框值传递给变量,即实现了双向绑定。话不多说,上代码:

不使用方法实现:

<div id="ab">
        <!-- <input type="text" v-model="msg"> -->
        <input type="text" name="" id="" v-bind:value="msg" v-on:input="msg = $event.target.value">
        <h4>{{msg}}</h4>
    </div>
    <script>
        const app = new Vue({
            el:'#ab',
            data:{
                msg:'起飞'
            }
        })
    </script>

使用方法实现:

   <div id="ab">
        <!-- <input type="text" v-model="msg"> -->
        <input type="text" name="" id="" v-bind:value="msg" v-on:input="Value">
        <h4>{{msg}}</h4>
    </div>
    <script>
        const app = new Vue({
            el:'#ab',
            data:{
                msg:'起飞'
            },
            methods:{
                Value(event){
                    this.msg = event.target.value;
                }
            }
        })
    </script>

它们的运行结果都为:
在这里插入图片描述
喜欢的朋友可以点赞加收藏哦,谢谢。

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值