 So today I'm going to talk about a new API which was introduced very recently known as React Hooks. So two months before in October, actually React conference, Dan Abramov, who is the main maintainer of React, introduced the API called React Hooks. And Twitter really went berserk after this announcement. A lot of people found a lot of advantages in React, but a lot of us didn't really understand what it does, why it does, and how it is so advantageous. So many of us, okay, I'll dive into what exactly why React Hooks are so advantageous. These are the main points that make React Hooks so awesome. I'll start off with the simple stuff that's less of boilerplate code. If you actually see, there are two ways to write components in React. The older way is using a class. As you can see, there is a lot of boilerplate you have to extend from a class as well as you need to bind event listeners and a lot of it. On the right-hand side, somehow, this is the React functional component using React Hooks. I don't know why it's not clear. As you can see, there's definitely less number of lines of code. And there's no, this is actually a dreaded concept in JavaScript classes especially because it doesn't really work like in other languages. So moving on to another benefit of React Hooks, that is separation of concerns. So this actually is a class component. And on the right-hand side, you see the corresponding functional component using React Hooks. The blackout code is actually the waste boilerplate code which gets repeated for no reason. And the color coordination means how things are scoped in the sense how similar concerns are scoped together. I can't really see. So the yellow part is actually all the code related to team management. The blue part is actually related to state management and the rest. So you can see the separation of concern is clearly way better using React Hooks. So the reason why React became so popular was the ability to reuse code. So basically in React, you have three ways to reuse code. The first one is reusing a simple UI, presentational component. Second one is you try to fit together, abstract out any common component which can have similar behavior which can be used in multiple components. And due to React Hooks, what you can do is you can extract out the behavioral, not just presentational, behavioral common code like this. So here, useCounter is a React hook which does nothing but just increments, decrements and resets the state. So instead of being tightly coupled to a class, you have abstracted out this common code into a separate function which can be easily exported and used in other components. So any other component which needs such a functionality can simply import it and use it in the component. And last but not least, it's just a functional way to write components. And functional has many advantages. Some of these are you get better testing, easy testing, easier to read and reason. And also, you can refactor the code easily. Some of the popular examples of React Hooks are useState, it's a hook for state management. UseEffect is a hook which you can use to have side effects to your component in a separate function. Side effects, I mean, you could have an API called for fetching data or any sort of DOM manipulation or fetching and writing data into local storage. UseContext is another API of React which gives you easy data sharing among components at different tree levels. And useMemo is just a hook which you can use to memoize your function. So if you have anything with heavy calculations, it really increases the performance of the app. And these are just a few new ones. There are a lot of other hooks in development. So in future, it's very easy. You'll find hook for everything, a hook to importer, emotion theme, a hook to importer, producer, function, basically everything, every state logic would be abstracted in a hook and that's the latest functional way of writing components. I hope something was there for you guys to understand. You can call a hook from another hook. That is exactly what you are asking. That solves that use case. But overall, the main purpose of hook is, like, you can't really see the code very clearly here, but everything, every event listener or any sort of state manipulation function is very tightly coupled to the class. That was the main problem that hooks is trying to solve. Instead of such a code, you have a separate function which manage and this is, I'm only talking about state-related code. So whatever was presentational was anyway reusable, but it used to be a big problem when you have state manipulation and you try to, you just could not reuse it because it was so tightly coupled to the component. That was the main purpose. Okay. Cool. Thank you.