Hooks let you use state and other React features without writing a class.
import React, { useState } from 'react';
function Example() {
// Declare a new state variable, which we'll call "count"
const [count, setCount] = useState(0);
return (
<div>
<p>You clicked {count} times</p>
<button onClick={() => setCount(count + 1)}>
Click me
</button>
</div>
);
}
React class
class Example extends React.Component {
constructor(props) {
super(props);
this.state = {
count: 0
};
}
render() {
return (
<div>
<p>You clicked {this.state.count} times</p>
<button onClick={() => this.setState({ count: this.state.count + 1 })}>
Click me
</button>
</div>
);
}
}
Hooks and Function Components
We can use these functions components in React. These are stateless components
. They can be called function component
Hooks don't work inside class. We can use them instead of writing classes.
const Example = (props) => {
// You can use Hooks here!
return <div />;
}
function Example(props) {
// You can use Hooks here!
return <div />;
}
If you want to add state to function component. You can add Hook useState
function to it instead of converting it to a class.
import React, { useState } from 'react';
function Example() {
// Declare a new state variable, which we'll call "count"
const [count, setCount] = useState(0);
Variable count
could be called by anything. useStae is used as same as
this.state` provides in a class. State variables are preserved by React.
The argument to useState()
Hook is the initial state. We can pass string or number as an argument for example 0 is initial state. We can call `useState() twice if we need to state two different values in state.
The state variable count
was declare and set it to 0. React will remember the current value between re-renders, and provide the most recent one to our function. If we want to update the current count
, we can call setCount
.
Updating State
In a class, we need to call this.setState()
to update the count
state. In a function, we already have setCount
and count
as variables we don't need this
References:
https://reactjs.org/docs/hooks-state.html
Top comments (0)