VUE——v-model实现双向数据绑定

本文介绍了Vue.js框架中v-model指令的使用,实现表单元素与Model数据的双向绑定,通过示例展示了如何使用v-model进行数据同步更新。此外,还提供了一个简易计算器的实现案例,包括加减乘除运算。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

    <div id="app">
        <h4>{{ msg }}</h4>
        <!--v-bind只能实现数据的单向绑定,从M自动绑定到V,无法实现数据的双向绑定-->
        <input type="text" v-bind:value="msg">
    </div>

    <script>
        //创建Vue实例,得到ViewModel
        var vm= new Vue({
            el: '#app',
            data: {
                msg: '爱学习,爱思考'
            },
            methods: {

            }
        });
    </script>
    <div id="app">
        <h4>{{ msg }}</h4>
        <!--v-bind只能实现数据的单向绑定,从M自动绑定到V,无法实现数据的双向绑定-->
        <!--<input type="text" v-bind: value="msg">-->
        <!--使用v-model指令,可以实现表单元素和Model中数据的双向数据绑定-->
        <!--注意:v-model只能运用在表单元素中-->
        <!--如input(radio, text, address, email...) select checkbox textarea-->
        <input type="text" style="width:100%;" v-model="msg">
    </div>
    <script>
        //创建Vue实例,得到ViewModel
        var vm= new Vue({
            el: '#app',
            data: {
                msg: '爱学习,爱思考'
            },
            methods: {
            }
        });
    </script>

简易计算器

    <div id="app">
        <input type="text" v-model="n1">
        <select v-model="opt">
            <option value="+">+</option>
            <option value="-">-</option>
            <option value="*">*</option>
            <option value="/">/</option>
        </select>
        <input type="text" v-model="n2">
        <input type="button" value="=" @click="calc">
        <input type="text" v-model="result">
    </div>
    <script>
        //创建Vue实例,得到ViewModel
        var vm= new Vue({
            el: '#app',
            data: {
                n1: 0,
                n2: 0,
                result: 0,
                opt: '+'
            },
            methods: {
                calc(){//计算器算术的方法
                    //逻辑:
                    switch (this.opt){
                        case '+':
                            this.result = parseInt(this.n1)+parseInt(this.n2)
                            break;
                        case '-':
                            this.result = parseInt(this.n1)-parseInt(this.n2)
                            break;
                        case '*':
                            this.result = parseInt(this.n1)*parseInt(this.n2)
                            break;
                        case '/':
                            this.result = parseInt(this.n1)/parseInt(this.n2)
                            break;
                    }
                }
            }
        });
    </script>
### 使用 `v-model` 实现数据双向绑定并获取值的方法 在 Vue 中,`v-model` 是一种用于创建双向数据绑定的语法糖。它本质上是 `v-bind:value` 和 `v-on:input` 的组合[^1]。 #### 创建简单的输入框组件来展示 `v-model` 为了更好地理解如何使用 `v-model` 来实现双向绑定以及如何获取其值,下面提供了一个简单例子: ```html <div id="app"> <!-- 绑定 input 输入框 --> <input type="text" v-model="message"> <!-- 显示 message 值 --> <p>Message is: {{ message }}</p> </div> <script src="https://cdn.jsdelivr.net/npm/vue@2"></script> <script> new Vue({ el: '#app', data() { return { // 初始化 message 数据 message: '' } }, methods: { getMessageValue(){ console.log(this.message); } }, watch:{ message(newVal, oldVal){ this.getMessageValue(); } } }) </script> ``` 在这个例子中,每当用户修改 `<input>` 字段中的文本时,`data()` 函数返回的对象内的 `message` 属性会自动更新;反之亦然——如果程序逻辑改变了 `message` 的值,则 DOM 将相应地重新渲染以反映新的状态[^2]。 此外,通过定义方法 `getMessageValue` 并利用 Vue 的监视器功能 (`watch`) ,可以在每次 `message` 发生变动的时候打印当前的消息内容至控制台,从而达到获取最新值的目的[^4]。 #### 处理更复杂的情况 对于某些特定类型的表单控件(如复选框、多选列表),可能需要稍微不同的处理方式。例如,对于布尔型的数据绑定,通常应用于勾选框 (checkbox),此时 `true-value` 和 `false-value` 属性可以帮助指定真伪值[^3]。 ```html <input type="checkbox" v-model="toggle" true-value="yes" false-value="no"> <p>Toggled value: {{ toggle }}</p> ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值