vue.js小练习之计算器

方法1:
点击button,调用对应method:submit(),获取计算结果

<!DOCTYPE html>
<html>

<head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>vue.js小练习之计算器</title>
    <script src="https://unpkg.com/vue@1.0.28/dist/vue.js"></script>
</head>

<body>
    <div id='app'>
        <input type='text' :value="num1" v-model='num1' />
        <select v-model='opt' :value='opt'>
            <option value='+'>+</option>
            <option value='-'>-</option>
            <option value='*'>*</option>
            <option value='/'>/</option>
            <option value='%'>%</option>
        </select>
        <input type='text' :value="num2" v-model='num2' />
        <button @click='submit'>=</button>
        <input type="text" :value="result" />
        <div>
           计算结果: {{num1}}{{opt}}{{num2}}={{result}}
        </div>
    </div>

    <script>
        var vm = new Vue({
            el: "#app",
            data: {
                num1: '0',
                num2: '0',
                 result: '0',
                opt: '+'
            },
            methods: {
                submit: function () {
                    var num1 = parseInt(this.num1);
                    var num2 = parseInt(this.num2);
                    switch (this.opt) {
                        case ('+'):
                            this.result = num1 + num2;
                            break;
                        case ('-'):
                            this.result = num1 - num2;
                            break;
                        case ('*'):
                            this.result = num1 * num2;
                            break;
                        case ('/'):
                        if (num2==0) {
                            alert("除数不能为0,请重新输入");
                           return;
                        }
                            this.result = num1 / num2;
                            break;
                        case ('%'):
                            this.result = num1 % num2;
                            break;
                    }
                }
            }
        });
    </script>
</body>

</html>

方法2:
利用computed 直接计算出result值,无需手动提交,页面自动响应

<!DOCTYPE html>
<html>

<head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>vue.js小练习之计算器</title>
    <script src="https://unpkg.com/vue@1.0.28/dist/vue.js"></script>
</head>

<body>
    <div id='app'>
        <input type='text' :value="num1" v-model='num1' />
        <select v-model='opt' :value='opt'>
            <option value='+'>+</option>
            <option value='-'>-</option>
            <option value='*'>*</option>
            <option value='/'>/</option>
            <option value='%'>%</option>
        </select>
        <input type='text' :value="num2" v-model='num2' />
       <button>=</button> 
        <input type="text" :value="result"  />
        <div>
           计算结果: {{num1}}{{opt}}{{num2}}={{result}}
        </div>
    </div>

    <script>
        var vm = new Vue({
            el: "#app",
            data: {
                num1: '0',
                num2: '0',
                opt: '+'
            },
            computed:{
                result:function(){
                     var num1 = parseInt(this.num1);
                    var num2 = parseInt(this.num2);
                    switch (this.opt) {
                        case ('+'):
                            return num1 + num2;
                            break;
                        case ('-'):
                            return num1 - num2;
                            break;
                        case ('*'):
                            return num1 * num2;
                            break;
                        case ('/'):
                        if (num2==0) {
                            alert("除数不能为0,请重新输入");
                           return;
                        }
                            return num1 / num2;
                            break;
                        case ('%'):
                            return num1 % num2;
                            break;
                    }
                }
            }
        });
    </script>
</body>

</html>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值