DEV Community

Cover image for Context ApI + useContext Hook (The deadly Beast)!!
Jayant Khandelwal
Jayant Khandelwal

Posted on • Edited on

6

Context ApI + useContext Hook (The deadly Beast)!!

Fun Fact:
Context API to State management in React, is Hammer to Hulk!

Don't you agree?
Check it out yourself :

"Context provides a way to pass data through the component tree without having to pass props down manually at every level."

Tree

Consider a Scenairo:

In the above Tree, if we need to access the username in Component A, Component D, and Component F then these can be the following ways:

Method 1.)
Pass it down through all the components as props i.e (B -> D) and (C -> E -> F). The Problem with this method is that we need to unnecessarily pass props through Component B, Component C, and Component E as they are the Parent Component of Component D and F. It decreases the efficiency of our software.

Method 2.) Use Context API

We will make use of Method 2:

Steps to Create Context

1.) Create the context
2.) Provide the context value
3.) Consume the context value

Let us consider only the case from (C -> E -> F).

Step 1:) Create the Context:

Create Context

In the first Step, we have made a context using React.createContext().

Step 2.) Provide the context value:

Provider

Now, we have used the Context Provider to pass the value to the components.

Note: value passed in Provider will be passed to all the components (and their Child Components) present inside the Provider Tag. In our case, the value will be passed to Component C and its child Components (i.e Component E and Component F).

Step 3.) Consume the context value:

Consume Context

Now we need to Consume the context value which we have passed down to Component C and its child Components. We will consume it in Component F.

In the return statement, place a Consumer tag and enclose the JSX function in it having the context value as arguments (username as an argument in our case).

Output:

Alt Text

This is how you can make use of Context API.

It can be noted that there is a little bit of hassle in order to consume context value

In order to make consumption of context value an easy task, we will make use of the useContext hook in the upcoming post!

Stay tuned for the upcoming posts of the Series!!

I hope it might help you, Feel free to leave a comment if you have any doubt!

Feedbacks are always welcome!

Happy Coding!

-Jayant Khandelwal

Sentry blog image

How to reduce TTFB

In the past few years in the web dev world, we’ve seen a significant push towards rendering our websites on the server. Doing so is better for SEO and performs better on low-powered devices, but one thing we had to sacrifice is TTFB.

In this article, we’ll see how we can identify what makes our TTFB high so we can fix it.

Read more

Top comments (0)

Billboard image

The Next Generation Developer Platform

Coherence is the first Platform-as-a-Service you can control. Unlike "black-box" platforms that are opinionated about the infra you can deploy, Coherence is powered by CNC, the open-source IaC framework, which offers limitless customization.

Learn more

👋 Kindness is contagious

Please leave a ❤️ or a friendly comment on this post if you found it helpful!

Okay