方法:
先引入vue之后用div创建布局,再然后用script写出对应的方法。因为有四种计算符号,因此需要在methods中写出对应的四种计算方式。
代码如下:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title></title>
<script src="js/vue.js"></script>
</head>
<body>
<div id="app">
<input type="text" v-model="number1" placeholder="请输入第一个整数">
<select v-model="opt">
<option>+</option>
<option>-</option>
<option>*</option>
<option>/</option>
</select>
<input type="text" v-model="number2" placeholder="请输入第二个整数">
<button @click="change">结果</button>
<input type="text" v-model="result">
</div>
</body>
<script>
var vm =new Vue({
el:"#app",
data:{
opt:"+",
number1:"",
number2:"",
result:""
},
methods:{
change(){
if(this.opt=="+"){
return this.result=parseInt(this.number1)+parseInt(this.number2);
}else if(this.opt=="-"){
return this.result=parseInt(this.number1)-parseInt(this.number2);
}else if(this.opt=="*"){
return this.result=parseInt(this.number1)*parseInt(this.number2);
}else{
return this.result=parseInt(this.number1)/parseInt(this.number2);
}
}
}
})
</script>
</html>
效果:
第二种:
用监听器的方法 做计算器,先用v-model.number绑定两个数字,之后用watch监听这两个数字,根据输入的数字以及运算符不同来输出。
代码如下:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title></title>
<script src="js/vue.js"></script>
</head>
<body>
<div id="app">
<input type="text" v-model.number="number1" placeholder="请输入第一个整数">
<select v-model="opt">
<option>+</option>
<option>-</option>
<option>*</option>
<option>/</option>
</select>
<input type="text" v-model.number="number2" placeholder="请输入第二个整数">
<button @click="change">结果</button>
<input type="text" v-model.number="result">
</div>
</body>
<script>
var vm =new Vue({
el:"#app",
data:{
opt:"+",
number1:"",
number2:"",
result:""
},
computed:{
change(){
if(this.opt=="+"){
return this.result=parseInt(this.number1)+parseInt(this.number2);
}else if(this.opt=="-"){
return this.result=parseInt(this.number1)-parseInt(this.number2);
}else if(this.opt=="*"){
return this.result=parseInt(this.number1)*parseInt(this.number2);
}else{
return this.result=parseInt(this.number1)/parseInt(this.number2);
}
}
},
wathch:{
number(newnum){
if(this.opt=="+"){
return this.result=newnum+this.number1;
}else if(this.opt=="-"){
return this.result=newnum-this.number1;
}else if(this.opt=="*"){
return this.result=newnum*this.number1;
}else{
return this.result=newnum/this.number1;
}
},
numbers(newnums){
if(this.opt=="+"){
return this.result=this.number2+newnums;
}else if(this.opt=="-"){
return this.result=this.number2-newnums;
}else if(this.opt=="*"){
return this.result=this.number2*newnums;
}else{
return this.result=this.number2/newnums;
}
}
},
opt(){
if(this.opt=="+"){
return this.result=this.number1+this.number2;
}else if(this.opt=="-"){
return this.result=this.number1-this.number2;
}else if(this.opt=="*"){
return this.result=this.number1*this.number2;
}else{
return this.result=this.number1/this.number2;
}
}
})
</script>
</html>
效果图:
第三种:
用计算属性的方法
代码如下:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title></title>
<script src="js/vue.js"></script>
</head>
<body>
<div id="app">
<input type="text" v-model="number1" placeholder="请输入第一个整数">
<select v-model="opt">
<option>+</option>
<option>-</option>
<option>*</option>
<option>/</option>
</select>
<input type="text" v-model="number2" placeholder="请输入第二个整数">
<button @click="disan">结果</button>
<input type="text" v-model="result">
</div>
<script>
var vm=new Vue({
el:"#app",
data:{
opt:"+",
number1:"",
number2:"",
result:""
},
computed:{
disan(){
if(this.opt=="+"){
return this.result=parseInt(this.number1)+parseInt(this.number2);
}else if(this.opt=="-"){
return this.result=parseInt(this.number1)-parseInt(this.number2);
}else if(this.opt=="*"){
return this.result=parseInt(this.number1)*parseInt(this.number2);
}else{
return this.result=parseInt(this.number1)/parseInt(this.number2);
}
}
}
})
</script>
</body>
</html>
效果: