数据双向绑定

文章介绍了数据双向绑定的概念,通过Object.defineProperty实现数据劫持和监听。示例中展示了如何用Vue.js创建一个简单的计算器,利用v-model绑定输入值和计算结果,用户选择运算符后,点击等于按钮即可得到计算结果。

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

数据双向绑定

1.绑定的是表单控件
2.数据双向绑定原理:数据双向绑定是采用数据劫持结合发布者-订阅者模式的方式,通过Object.defineProperty()来劫持各个属性的setter、getter,在数据变动时发布消息给订阅者,触发响应的监听回调来渲染视图。

<input type="text" v-model:value="value">

简写

<input type="text" v-model="value">
 data: {
            	value: 123
            }

简易计算器实现代码

html部分

 <!-- 实现功能需要先引入vue.js包 -->
 <script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
 <div id="app">
        <!-- 计算器 -->
        <input type="text" v-model="firstValue">
        <select v-model="selected" name="" id="">
            <option value="+">+</option>
            <option value="-">-</option>
            <option value="*">*</option>
            <option value="/">/</option>
        </select>
        <input type="text" v-model="endValue">
        <button @click="value">=</button>
        <input type="text" v-model="lastValue">
    </div>

js部分

 let vm = new Vue({
        el: '#app',
        data: {
            firstValue: '',
            endValue: '',
            lastValue: '',
            selected: ''
        },
        methods: {
            value() {
                // console.log('111');
                // console.log(this.selected);
                this.lastValue = eval('Number(this.firstValue)' + this.selected + 'Number(this.endValue)')

            },
        },
    })
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值