Before we dive into Hooks, let's first talk about functional components and class components in React.
React started with two main types of components:
Class components were used when you needed to do things like:
On the other hand, functional components were simpler. They didn’t have state or side effects and were just used to display static data.
However, as developers started building more complex apps, they needed state and side effects even in simple functional components. That’s where Hooks came in.
Hooks are special functions that allow you to add extra powers to functional components. They let you do things like:
Hooks make it possible to write components in a simpler, more organized way using functions instead of classes.
To understand why Hooks are so important, let’s imagine a real-life situation:
Let's say you’re building a simple app with a button that increases a number on the screen each time you click it. This number is data that changes over time — it's called state in React.
Before Hooks were created, you would have to write this button component using a class to manage the state, and that made things a little harder to understand, especially for beginners. Class components involve more setup, extra keywords, and different rules you have to follow.
For example, in a class component, you had to use the this keyword to refer to your component, which could easily confuse new developers. You also had to remember different methods like componentDidMount
, componentDidUpdate
, and componentWillUnmount
to handle side effects.
But with Hooks, React gave us an easier and cleaner way to manage things like state and side effects in functional components, which are much simpler to write.
Hooks make functional components just as powerful as class components but without all the complexity.
Think of a Hook as a special tool that adds powers to your functional components. Hooks let you do things like:
There are different types of Hooks for different jobs, but the three most important ones are:
Before Hooks, if you wanted to:
You had to use class components, which made things more complicated.
Hooks allow you to:
With Hooks, React became easier for beginners to learn because:
this
keyword or complex lifecycle methods.In short:
Let’s look at some of the key things Hooks let you do:
useState
Hook in functional components to keep track of and update your data.useEffect
Hook, you can manage side effects in a clear and easy way without needing complex lifecycle methods.useContext
Hook to make this data available wherever you need it, without passing it through every level manually.To sum up:
In the next lessons, we’ll learn how to use some of the most important Hooks:
useState
(to manage state),useEffect
(to handle side effects), anduseContext
(to share data across components).Each of these Hooks will give you new powers to build more interactive and dynamic React apps. We’ll start with the useState
Hook in the next lesson!