React Context API
Today we are going to talk about Context API in this blog.
so first of all you might have a question that
What is CONTEXT API?
so this is the simple definition:
"Context API is the way to pass the data through the multiple components without passing props."
Let's understand this with a simple example:
So in this example we are going to create a e-commerce product with contains some data for ex: price, variants, size, name, ratings
in React.org examples of the usage is provided in class components but here we are going to use functional components.
Step 1: create a folder named
context
where we will store the context files
//inside the productContext.jsx
import React, {createContext} from "react";
const productContext = createContext();
export default productContext;
Step 2: Now we are going to provide a data in this
productContext
for that create another file namedproductState.jsx
import ProductContext from "./productContext.jsx"
const ProductState = ({children}) => {
const productData = {
"name": "Classic T-shirt",
"size": "XXL",
"color": "red",
"price": 499,
"Ratings 4.5"
}
return(
<>
<ProductContext.Provider value={productData}>
{children}
</ProductContext.Provider>
</>
}
export default ProductState;
Explaination of above code:
First we included productcontext which we made in 1st step. then inside the ProductState we created a object which contains the details of the product and added it as Context value.
children props is passed so it act as product data.
We have successfully made a context api now lets use it in out App.js ( main file which comes with boilerplate
Step 3: In
App.js
we are going to use this context api
import {useContext} from "react";
import productContext from "../context/productContext";
import ProductState from "../context/productState"
const App = () => {
const data = useContext(productContext)
return(
<div>
<ProductState>
<p> Product name: {data.name}</p>
<p> Product price: {data.price}</p>
<p> Product ratings: {data.ratings}</p>
</ProductState>
</div>
)
}
export default App;
Thank you for reading my blog