<!DOCTYPE html>
<html>
<head>
<title>Vue Calculator</title>
<!-- 引入 Vue.js 库 -->
<script src="js/vue.js"></script>
</head>
<body>
<div id="app">
<!-- 显示计算结果 -->
<p>Result: {{ result }}</p>
<!-- 输入第一个数字 -->
<label for="num1">Number 1:</label>
<input type="number" id="num1" v-model.number="num1">
<!-- 选择操作符 -->
<label for="operator">Operator:</label>
<select id="operator" v-model="operator">
<option value="+">+</option>
<option value="-">-</option>
<option value="*">*</option>
<option value="/">/</option>
</select>
<!-- 输入第二个数字 -->
<label for="num2">Number 2:</label>
<input type="number" id="num2" v-model.number="num2">
</div>
<!-- 定义 Vue 实例 -->
<script>
// 创建 Vue 实例
var app = new Vue({
// 绑定到页面上的 DOM 元素
el: '#app',
// 定义数据(可以在页面上直接使用)
data: {
num1: 0, // 第一个数字(默认为0)
num2: 0, // 第二个数字(默认为0)
operator: '+', // 操作符(默认为加号)
result: 0 // 计算结果(默认为0)
},
// 定义观察器(即监听器),会在被观察的数据发生变化时自动调用
watch: {
// 监听 num1、num2 和 operator 变化,重新计算结果
num1: 'calcResult',
num2: 'calcResult',
operator: 'calcResult'
},
// 定义方法,可以在页面上直接调用
methods: {
calcResult: function() {
// 根据 operator 执行相应的运算
switch (this.operator) {
case '+':
this.result = this.num1 + this.num2;
break;
case '-':
this.result = this.num1 - this.num2;
break;
case '*':
this.result = this.num1 * this.num2;
break;
case '/':
this.result = this.num1 / this.num2;
break;
}
}
}
});
</script>
</body>
</html>