使用React实现一个简单的计算器代码
实现效果:


index.html

<!DOCTYPE html>
<html lang="en"><head><meta charset="utf-8" /><meta name="viewport" content="width=device-width, initial-scale=1" /><title>React App</title></head><body><div id="root"></div><script type="text/babel" src="../src/input-button.js"></script></body>
</html>

input-button.js 按钮组件

import React, { Component } from 'react';
import PropTypes from 'prop-types'class inButton extends Component{static propTypes={className: PropTypes.string}static defaultProps={className:"same_size"}render() {return <inputtype="button"className={this.props.className}value={this.props.value} />}
}
export default inButton

input-text.js 显示组件

import React, { Component } from 'react';class inText extends Component{render() {return <input type="text" id="content" value={this.props.value} readOnly={true}/>}
}
export default inText

App.js

import React, { Component } from 'react';
import Button from './input-button'
import Text from './input-text'class App extends Component {constructor() {super();this.state={string:""}}handleButton(e){if (e.target.value!==undefined){let instring=e.target.value;let prvcontent=this.state.string;let content="";if (instring==="+"||instring==="-"||instring==="*"||instring==="/"){content=prvcontent+" "+instring+" ";}else if (instring==="附加"){content="功能未开放";}else if (instring==="C"){content="";}else if (instring==="Back"){if(prvcontent[prvcontent.length-1]===" " && prvcontent[prvcontent.length-3]===" ")prvcontent=prvcontent.slice(0,prvcontent.length-3);elseprvcontent=prvcontent.slice(0,prvcontent.length-1);content=prvcontent;}else if (instring==="="){let arr=prvcontent.split(" ");let ans=[];let i=0;while (i<arr.length){if (arr[i]==="")i++;else if (arr[i]==="+"){ans.push(arr[i+1]);i+=2;}else if (arr[i]==="-"){ans.push(-arr[i+1]);i+=2;}else if (arr[i]==="*"){let a;let b=ans.pop();if(arr[i+1]==="-"){a=-arr[i+2];i+=3;}else {a=arr[i+1];i+=2;}ans.push(b*a);}else if (arr[i]==="/"){let a;let b=ans.pop();if (arr[i+1]==="0"){content="ERROR!";return;}else if(arr[i+1]==="-"){a=-arr[i+2];i+=3;}else {a=arr[i+1];i+=2;}ans.push(b/a);}else {ans.push(arr[i]);i++;}}// console.log(ans);let fin_ans=parseFloat(ans[0]);for (i=1;i<ans.length;i++)fin_ans+=parseFloat(ans[i]);content=prvcontent+instring+fin_ans;}else{content=prvcontent+instring;}this.setState({string:content})}}render() {return (<div id="main"><div id="input_text"><Text value={this.state.string}/></div><div id="input_button" onClick={this.handleButton.bind(this)}>//设置事件代理<Button value={1}/><Button value={2}/><Button value={3}/><Button value={"Back"}/><Button value={"C"}/><Button value={4}/><Button value={5}/><Button value={6}/><Button value={"+"}/><Button value={"-"}/><Button value={7}/><Button value={8}/><Button value={9}/><Button value={"*"}/><Button value={"/"}/><Button value={"附加"}/><Button value={0}/><Button value={"."}/><Button value={"="} className={"equal_size"}/></div></div>)}}
export default App

index.js

import React from 'react';
import ReactDOM from 'react-dom';
import App from './App'
import './index.css'ReactDOM.render(<App />,document.getElementById('root')
);

index.css

#main{border: 1px solid black;margin: 1vw auto;width: 45vw;height: 30vw;
}#input_text{/*border: 1px solid red;*/margin: 3% 4%;width: 92%;height: 14%;display: flex;
}
#input_button{/*border: 1px solid black;*/margin: 3% 2%;width: 96%;height: 74%;display: flex;flex-wrap: wrap;
}#input_text #content{flex: auto;margin: 0;width: 100%;/*height: 65%;*/font-size: 2vw;
}
#input_button .same_size{flex: auto;margin: 1%;width: 18%;height: 20%;font-size: 1.5vw;
}
#input_button .equal_size{flex: auto;margin: 1%;width: 38%;height: 20%;font-size: 1.5vw;
}

使用React实现一个简单计算器相关推荐

  1. 模拟一个简单计算器_阅读模拟器的简单介绍

    模拟一个简单计算器 Read simulators are widely being used within the research community to create synthetic an ...

  2. 用java编写一个简单计算器

    java 采用java编写一个简单计算器,使用awt和swing 代码如下: import java.awt.Color; import java.awt.Font; import java.awt. ...

  3. 使用Qt做一个简单计算器

    title: Calculator date: 2022-09-04 11:10:12 tags: [Qt, 应用, C++] typora-root-url: Calculator 使用Qt做一个简 ...

  4. 做一个简单计算器(两个数的加减乘除)扣扣116119409

    做一个简单计算器(两个数的加减乘除) 一.语言和环境 a)实现语言Java b)环境要求Android Studio 二.要求: 1.可以清空,可以回退(一个一个回退): 2.按下去之后textvie ...

  5. c语言设计程序计算器,C语言程序设计,做一个简单计算器

    题目: C语言程序设计,做一个简单计算器 程序内容有:加减乘除和平方,立方,开方等.用if或者swith结构来编程. 算加法时只输出加法的结果,算减法时只出减法的结果,如此类推. 解答: 已发送, # ...

  6. QT实现一个简单计算器

    QT实现一个简单计算器 学生一枚,水平有限,如有问题,还望指正 第一步 通过QT设计师绘制出界面图形,界面大致如下: 第二步 将保存的.ui文件转换为头文件,以便于自己创建的对象对其继承和使用 uic ...

  7. 电脑用java怎么编程,使用java编程从0到1实现一个简单计算器

    学习编程语言最重要的就是实践.很多小伙伴在学习完编程语言后,一直停留在基础阶段,只懂一大堆理论知识,而不懂得实践.那么,今天我们一起来动手做一个小计算器,回顾下学习过的知识,同时这也是很多大学计算机专 ...

  8. C#设计一个简单计算器,实现两个数的加、减、乘、除、求幂等计算

    设计一个简单计算器,实现两个数的加.减.乘.除.求幂等计算 using System; using System.Collections.Generic; using System.Component ...

  9. 用AS编写一个简单计算器

    一.简单的小背景 老师之前布置的一个用AS实现一个简单计算器的作业,作为一个刚学AS的小白渣是真的无从下手...所以在网上东拼西凑也算是有了基础的想法. 大致框架出来了,最后依然有一些小bug我真的无 ...

最新文章

  1. office2003计算机考试,计算机考试Office2003应用.doc
  2. 27.Silverlight二维旋转+平面渐变+动画,模拟雷达扫描图之基本框架
  3. PAT甲级1030 Travel Plan (30分):[C++题解]dijkstra求单源最短路、保存路径
  4. 【tomcat】catalina.home catalina.base 区别
  5. Java中的Runtime类详解
  6. 20145206邹京儒《网络对抗》逆向及Bof基础实践
  7. 图解分析 Linux 网络包发送过程
  8. Velocity语法参考
  9. Android知识点复习(一)-Android系统架构
  10. 【Scratch案例实操】scratch大鱼吃小鱼(完整详案) scratch编程案例教学 scratch创意编程 少儿编程教案
  11. mapper扫描问题(Invalid bound statement (not found))
  12. 点击箭头 切图 html,css写箭头
  13. html基础教学ppt,HTML5基础培训ppt课件
  14. Python实现定时发送监控邮件
  15. dexpathlist.java_java.lang.ClassNotFoundException: Didn't find class xxx on path: DexPathList
  16. 用php实现本地文件的上传
  17. Ubuntu 16.04 安装GTX 1060 显卡驱动和CUDA 10.2
  18. [论文阅读] Facial Expression Recognition Using Residual Masking Network
  19. 代理模式与三种方式实现SpringAOP!
  20. DVB-subtitle解析流程浅

热门文章

  1. python生成二维码_用python生成二维码
  2. RTL8710系列的BW14模组,开发心得分享!
  3. 传说中的数据挖掘工程师,究竟是做什么的?
  4. Chrome浏览器上无法使用西瓜影音???
  5. 阿里云服务器配置及把java项目部署到服务器
  6. python风格变换图片_【人工智能】python图片风格迁移,来欣赏梵高风格的石原里美吧!...
  7. python数字水印_Python实现批量图片添加数字水印
  8. 理财通app的设计与实现(一)
  9. 【数据结构】线性表的顺序存储
  10. Photoshop自动化处理简单介绍