vue用三种方法做出简易计算器

方法:

        先引入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>

效果:

 

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值