
If you have been using React for a while now, you are making the same using patterns like Higher-Order Component, Render Props. The vital point to note here, we can share stateful logic between components without polluting the states. The custom hooks are regular JavaScript functions to isolate a reusable component logic. ⭐ The Custom Hook to Perform the Countdown
#RED HOT TIMER COUNTDOWN UPDATE#
It means your app on the browser will update automatically when you make any changes to the project source code and save it. Please note the Create React App supports hot reloading. You should have a browser tab opened automatically that runs the app URL. Once done, please browse to the countdown directory and start the app locally using the following command, npm run start This command will take a while, and create the project structure for you. Open the command prompt/terminal and execute this command, npx create-react-app countdown To follow along, you can use the Create React App(CRA) to create your initial project structure. I hope you have started "Thinking in React" already! Let's start putting things in code. We will determine the counter value based on the individual values of days, hours, minutes, and seconds. We also see the conditional rendering of ShowCounter and ExpiredNotice based on the counter value. It supplies the required data to the component as needed. We see the useCountdown hook isolated from the component hierarchy. With that, now take a look at the following diagram. The custom hook accepts the initial date and time and returns the count of days, hours, minutes, and seconds in the interval of our choice(say, in every 1000 ms). We can isolate the countdown calculation in a custom hook called useCountdown. Let's welcome Custom Hook to solve the problem. So, you shouldn't keep this tightly coupled with any components. But think about it, you may need this countdown calculation elsewhere in your app in the future. Please note we can do the entire countdown computation inside CountdownTimer or ShowCount components.

Please note how we can identify and mark the components. Here goes the design and component breakdown of the countdown application.

Please note, if you are a newbie to React and planning to follow along with this article, you will learn the concepts like, The image below shows a working example of the app. Once the date and time expire, it will show an expiry notice. We will create a countdown timer that will allow us to set an initial date and time to start the countdown. What could be better than learning it by developing a small but practical application? This article aims to explain the usages of the custom hook in a beginner-friendly manner.

However, the practice of writing custom hooks seems to be a bit lesser.

Web developers widely use React's standard hooks like useState, useEffect to manage state within the components. With the inclusion of functional components and hooks, it is even more potent in reusability, better code organization, and data flow. React(aka ReactJS) is a library that builds declarative and component-based user interfaces.
