使用vue3 给出一个网页计算器的代码
时间: 2025-01-05 17:38:25 浏览: 4
创建一个简单的Vue3网页计算器,可以使用Composition API来管理状态和事件处理。下面是一个基础的示例,包含加减乘除功能:
```html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Vue3 Calculator</title>
<script src="https://cdn.jsdelivr.net/npm/vue@3"></script>
</head>
<body>
<div id="app">
<input v-model.number="display" @keyup.enter="execute" placeholder="0" readonly/>
<button @click="clearDisplay">C</button>
<template>
<div v-for="(op, index) in operators" :key="index">
{{ op }}
<button @click="applyOperator(op)">=</button>
</div>
</template>
<div v-for="(operator, index) in ['+', '-', '*', '/']" :key="index">
{{ operator }}
<button @click="applyOperator(operator)">{{ operator }}</button>
</div>
</div>
<script setup>
const numKeys = ['7', '8', '9', '/', '4', '5', '6', '*', '1', '2', '3', '-', '0', '.', '='];
const display = ref(0);
const currentOp = ref(null);
function applyOperator(op) {
if (currentOp.value === null || !isNaN(+display.value)) {
currentOp.value = op;
} else {
execute();
}
}
function execute() {
let result = display.value;
switch (currentOp.value) {
case '+':
result += +display.value;
break;
case '-':
result -= +display.value;
break;
case '*':
result *= +display.value;
break;
case '/':
result /= +display.value;
break;
default:
break;
}
display.value = result;
currentOp.value = null;
}
function clearDisplay() {
display.value = '';
currentOp.value = null;
}
</script>
</body>
</html>
```
在这个例子中,我们使用了`v-model`绑定输入框的值,并通过`@keyup.enter`监听键盘回车键触发`execute`函数。我们还定义了一个数组`numKeys`来存储数字按钮和运算符按钮的操作。计算过程会在用户点击等号(`=`)时执行,或者清空当前显示值时执行。
这个计算器非常基础,实际项目中可能还需要添加更多复杂的功能,比如历史记录、错误处理等。
阅读全文