React js - useState hook
This post is a simple and easy tutorial to useState hook on React.
With hooks, it is possible to use state and other React features without writing a class. Hooks began included in React 16.8.0 version.
Let's go to the exercise:
To not have to create a new application, I recommend using CodeStandBox to follow this tutorial.
We will only work with two files in our src folder: App.js and styles.css.
- First of all, delete all content of your App.js and styles.css;
- We will not talk about CSS in this post for it just copy and paste the CSS following content;
styles.css
.App {
display: flex;
flex-direction: column;
justify-content: center;
align-items: center;
text-align: center;
}
.text {
font-weight: 300;
font-size: 5rem;
}
.btn-add {
border-radius: 25px;
margin: 10px;
padding: 15px 35px;
border: none;
outline: none;
background-color: blue;
font-size: 3rem;
color: #fff;
}
.btn-take {
border-radius: 25px;
margin: 10px;
padding: 15px 35px;
border: none;
outline: none;
background-color: red;
font-size: 3rem;
color: #fff;
}
.reset {
border-radius: 25px;
margin: 10px;
padding: 15px 35px;
border: none;
outline: none;
background-color: #0092c3;
font-size: 3rem;
color: #fff;
}
- In our App.js, let's import our CSS and create the App function, returning one
<h1>
to the title:
App.js
import "./styles.css";
export default function App() {
return (
<div className="App">
<h1 className="text">State Hook</h1>
</div>
);
}
- Let's import from React the useState hook that we can use inside our App function.
import React, { useState } from 'react';
- Now we can call inside the App function the local state. This state will be called useState, then return a pair: the current state value and a function. In our example, the current state will call “count”, and the function to update the “count” will be called “setCount”. Will be easy to understand taking a look at the code. Let's add a
<span>
to show the actual “count” on the screen:
App.js
import "./styles.css";
import React, { useState } from "react";
export default function App() {
const [count, setCount] = useState(0);
return (
<div className="App">
<h1 className="text">State Hook</h1>
<span className="text">{count}</span>
</div>
);
}
- To use the “setCount” function to change the “count”, let's create three buttons: one adds 1 to the “count”, one takes 1, and the last to reset. On
<button>
let's write an arrow function to use the setCount, on onClick event, will be clear on code example:
App.js
import "./styles.css";
import React, { useState } from "react";
export default function App() {
const [count, setCount] = useState(0);
return (
<div className="App">
<h1 className="text">State Hook</h1>
<span className="text">{count}</span>
<div>
<button className="btn-add" onClick={() => setCount(count + 1)}>
+1
</button>
<button className="btn-take" onClick={() => setCount(count - 1)}>
-1
</button>
</div>
<button className="reset" onClick={() => setCount(count - count)}>
Reset
</button>
</div>
);
}
It is what you will see on the screen:
Conclusion:
This post is one “Hello World” of State Hook on React application, but you can understand its concepts here. I will leave “code sandbox” links for you to explore.
Thank you for reading.