<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>Document</title>
<script src="./lib/vue.min.js"></script>
</head>
<body>
<div id="app">
<input type="text" v-model:value='n1'>
<select v-model:value='opt'>
<!-- 加减乘除符号 -->
<option value="+">+</option>
<option value="-">-</option>
<option value="*">*</option>
<option value="/">/</option>
</select>
<input type="text" v-model:value='n2'>
<input type="button" value="=" @click='calculate'>
<input type="text" v-model:value='result'>
</div>
<script>
//为的就是实现数据双向的绑定 根据实时输入的值和符号 计算结果
var vm = new Vue({
el: '#app',
data: {
n1: 0, //默认值0
n2: 0, //默认值0
opt: '+', //默认显示+号
result: null
},
methods: {
calculate() {//计算器逻辑
//逻辑:
// switch (this.opt) {
// case '+':
// this.result = parseInt(this.n1) + parseInt(this.n2);
// break;
// case '-':
// this.result = parseInt(this.n1) - parseInt(this.n2);
// break;
// case '*':
// this.result = parseInt(this.n1) * parseInt(this.n2);
// break;
// case '/':
// this.result = parseInt(this.n1) / parseInt(this.n2);
// break;
// }
//上述switch 实现麻烦 代码过多 用eval简化其实现
var calculateResult = 'parseInt(this.n1)' + this.opt + 'parseInt(this.n2)';
//eval() 函数可计算某个字符串,并执行其中的的 JavaScript 代码。
this.result = eval(calculateResult);
}
}
})
</script>
</body>
</html>