Vue3计算器的制作

一、HTML布局

<div class="display">
    <div class="content">
      <div>{{ exp }}</div>
      <div>{{ res }}</div>
    </div>
    <div class="box">
      <div class="btn ac" @click="handleAcClick">AC</div>
      <div class="btn c" @click="handleBackspaceClick">C</div>
      <div
      @click="handleBtnClick(v)"
        class="btn o"
        v-for="(v, i) in [
          '%',
          '/',
          '7',
          '8',
          '9',
          '+',
          '4',
          '5',
          '6',
          '-',
          '1',
          '2',
          '3',
          '*',
          '.',
          '0',
        ]"
        :key="i"
      >
        {{ v }}
      </div>

      <div class="btn eq" @click="handleEqClick">=</div>
    </div>
  </div>

二、参数以及函数引入

import { ref } from "vue";
export default {
  name: "ElCalc",
  setup() {
    var exp = ref("");
    var res = ref("");
    var handleAcClick = () => {
      exp.value = "";
      res.value = "";
    };
    var handleBackspaceClick = () => {
      exp.value = exp.value.slice(0, -1);
    };
    var handleBtnClick = (value) => {
      exp.value += value;
    };
    var handleEqClick = () => {
      try {
        res.value = eval(exp.value);
      } catch {
        res.value = "表达式错误";
      }
    };
    return {
      exp,
      res,
      handleAcClick,
      handleBackspaceClick,
      handleBtnClick,
      handleEqClick,
    };
  },
};

三、CSS布局

* {
  margin: 0;
  padding: 0;
}
div {
  box-sizing: border-box;
}
.display {
  width: 402px;
  height: 500px;
  border: 1px solid black;
}

.display .content {
  height: 150px;
  /* display: flex; */
  /* justify-content: flex-end; */
  /* align-items: flex-end; */
  padding: 20px;
  font-size: 30px;
}
.box {
  background: rgb(164, 163, 163);
  color: #fff;
  display: flex;
  flex-wrap: wrap;
}
.btn {
  width: 100px;
  height: 70px;
  display: flex;
  justify-content: center;
  align-items: center;
  font-size: 30px;
  border: 1px solid #fff;
  cursor: pointer;
}
.eq {
  width: 200px;
}

注意:

引入到App.vue即可正常使用

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值