npx create-react-app my-app
import React from 'react'
import React, {Component} from 'react'; //multiple imports
class Greetings extends React.Component {
render() {
return <h1>Hello, {this.props.name}</h1>;
}
}
function Greetings(props) {
return <h1>Hello, {props.name}</h1>;
}
function Greetings(props) {
return <h1>Hello {props.name}</h1>;
}
function App() {
return (
<div>
<Greetings name="foo" />
<Greetings name="bar" />
</div>
);
}
Note: Props are read-only
render() {
return <div />;
}
Below is a sample code, which increases the count value when you click +
and decreases the count value when you click -
.
import React, { useState } from "react";
function App() {
const [count, setCount] = useState(0);
return (
<div className="container">
<h1>{count}</h1>
<button onClick={()=>setCount(count-1)}>-</button>
<button onClick={()=>setCount(count+1)}>+</button>
</div>
);
}
export default App;
useEffect()- The next most useful Hook you will encounter is the useEffect Hook. It performs a function whenever a specified state has changed.
function House() {
const [color, setColor] = useState("white");
const [door, setDoor] = useState(0); //initialize door as 0
//add 1 to the current value of door on every button click
const addDoor = () => {
setDoor(door + 1);
};
//finally, trigger the function to print the door value whenever door is updated
useEffect(() => {
console.log(`Door count: ${door}`)
}, [door]);
return (
<div>
<h2>This is a {color} house</h2>
<button onClick={addDoor}>Add a Door</button>
</div>
);
}
<button type="submit">{isloggedin ? "Login" : "Register"}</button>
&&
also used to execute a block of code only if condition is true.
{!isloggedin && (
<button type="submit">{isloggedin ? "Login" : "Register"}</button>
)}
Below is example of a simple form which displays the given name along with Hello. For example, if you give Foo
in the input field, then when you click submit button it should display Hello Foo
.
import React, { useState } from "react";
function App() {
const [name, setName] = useState("");
const [displayName, setDisplayName] = useState("");
function handleClick(event) {
setDisplayName(name);
event.preventDefault();
}
return (
<div className="container">
<h1>Hello {displayName}</h1>
<form>
<input
placeholder="Enter your name?"
value={name}
onChange={(event)=>setName(event.target.value)}
/>
<button type="submit" onClick={handleClick}>Submit</button>
</form>
</div>
);
}
export default App;
When you click a submit button, usually page gets refreshed. You can prevent this by preventing the default settings.
event.preventDefault();