#vue# 实现计算器功能

需求:用vue实现一个简易的计算器

效果图:

 

 思路:

(1)首先将这个简易的计算器排版出来,主要是用到input、button、 select  option(下拉菜单)

这些标签,再进行写相应的css样式(不细讲)

(2)我们需要获取到每一个方框以及下拉菜单里的数值,所以我们需要用v-model 进行双向绑定

(3)接下来就是触发事件@click="事件函数"了,当我们输入数字的时候,点击等号方框,运算框就有结果,那么就需要在等号方框设置点击事件,让运算框来接收结果

(4)设置点击事件的时候,我们需要进行传参,那是传什么参数呢?我们可以看出,当我们的下拉菜单里面的运算符发生变化时,结果就会发生变化,那 我们只需要将下拉菜单的值传到点击事件里面就可以了

(5)然后,我们使用 switch函数进行判断,通过传入的下拉菜单的值,来判断不同的case,返回不同的值就可以了

注意:需使用parseInt()

demo代码部分

<template>
      <div class="number">
            <input type="text" v-model="num1" /> //第一个运算框
            <select v-model="conunt"> //加减乘除下拉菜单,设置加号为默认符号
                <option>+</option>  
                <option>-</option>
                <option>*</option>
                <option>/</option>
            </select>
            <input type="text" v-model="num2"/> //第二个运算框
            <button  @click="getcomper">=</button> //等号框,绑定点击事件
            <input type="text" v-model="result"/> //结果框
        </div>
</template>
<script>
  data() {
        return {
            num1:'',
            num2:'',
            result:'',
            conunt:'+'
        }
    },
    methods: {
        getcomper() {
            switch (this.conunt) {
                case '+':
                    this.result = parseInt(this.num1) + parseInt(this.num2)
                    break;
                case '-':
                    this.result = parseInt(this.num1) - parseInt(this.num2)
                    break;
                case '*' :
                    this.result = parseInt(this.num1) * parseInt(this.num2)
                    break;
                case '/':
                    this.result = parseInt(this.num1) / parseInt(this.num2)
                    break;
                default:
                    this.result = 0
            }
        }  //parseInt是为了拿到整数

    }

</script>

<style scoped>
.number {
    display: flex;
    width: 500px;
    margin: 100px auto;
}

input {
    width: 100px;
    height: 50px;
    margin-right: 20px;
}

button {
    width: 50px;
    height: 50px;
    font-size: 20px;
    margin-right: 20px;

}
select {
    width: 50px;
    height: 50px;
    background-color: #3BB9FF;
    margin-right: 20px;
    font-size: 18px;
}

</style>
  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值