Topics -> ReactJS, HTML, CSS, Web development
Preview Link -> Calculator
Source Code Link -> GitHub
What We are going to do?
- Creating a react component
- Adding keypads
- Adding event listeners to respond on click
- Functions to perform operations
Intialising the class
Extend a react component class.
class Calculator extends React.Component{
constructor(props){
super(props);
this.state={
display:0,
equation:'',
};
}
...
}
Basic structure of Front-end
render () {
return (<div className="commentContainer">
<div className="head">
<div>Calculator</div>
</div>
<div className="displayScreen">
<div className="eq">{this.state.equation}</div>
<div className="disp">{this.state.display}</div>
</div>
<div className="number1 keypad" onClick={()=>this.inputNo("1")} value="1">1</div>
<div className="number2 keypad" onClick={()=>this.inputNo("2")} value="2">2</div>
<div className="number3 keypad" onClick={()=>this.inputNo("3")} value="3">3</div>
<div className="number4 keypad" onClick={()=>this.inputNo("4")} value="4">4</div>
<div className="number5 keypad" onClick={()=>this.inputNo("5")} value="5">5</div>
<div className="number6 keypad" onClick={()=>this.inputNo("6")} value="6">6</div>
<div className="number7 keypad" onClick={()=>this.inputNo("7")} value="7">7</div>
<div className="number8 keypad" onClick={()=>this.inputNo("8")} value="8">8</div>
<div className="number9 keypad" onClick={()=>this.inputNo("9")} value="9">9</div>
<div className="number0 keypad" onClick={()=>this.inputNo("0")} value="0">0</div>
<div className="decimal keypad" onClick={()=>this.inputNo(".")} value=".">.</div>
<div className="add keypad" onClick={()=>this.operator("+")} value="+">+</div>
<div className="sub keypad" onClick={()=>this.operator("-")} value="-">-</div>
<div className="mul keypad" onClick={()=>this.operator("*")} value="*">*</div>
<div className="div keypad" onClick={()=>this.operator("/")} value="/">/</div>
<div className="aC keypad" onClick={this.reset}>AC</div>
<div className="equal keypad" onClick={this.result}>=</div>
</div>
);
}
}
Adding Function/Event Handlers
What happens when a person click a keyword?
A event is fired and it will do the arithmetic operation and update the page.
operator(value){
let b = value;
b=this.state.equation+b;
this.setState({equation:b});
}
result=()=>{
let b = eval(this.state.equation);
this.setState({display:b,equation:''});
}
inputNo(value){
let b = value ;
this.setState({display:b});
b=this.state.equation+b;
this.setState({equation:b});
}
reset=()=>{
this.setState({display:0,equation:''});
}
Fun Fact - Calculators were originally gear driven wheels, but now they use a chip
Add some stylings to make it look impressive.
Deployment
For deployment, We are using the GitHub Pages. For More Info
Web Preview / Output
Placeholder text by Praveen Chaudhary · Images by Binary Beast