Introduction to React JS
ContextAPI with Examples
ContextAPI provides a way to pass data through the component tree without having to pass props down manually at every level
CreateContext
Context.Provider
Context.consumer
UseContext
App.js
import React, { createContext } from 'react'; import ComA from './ComA'; const FirstName = createContext(); const LastName = createContext(); const App = () => { return( <> <FirstName.Provider value={"Deepak"}> <LastName.Provider value={"Kumar"}> <ComA/> </LastName.Provider> </FirstName.Provider> </> ); }; export default App; export { FirstName, LastName }; --------------------------------------------------------------------------------------------------------------------------------------------------------------
ComA.js
import React from 'react' import ComB from './ComB'; const ComA = () => { return <ComB/> }; export default ComA; ..........................................................................ComB.js
import React,{ useContext } from 'react' import ComC from './ComC'; const ComB = () => { return <ComC/> }; export default ComB; ..................................................................ComC.js
import React from 'react'; import { FirstName, LastName } from './App'; const ComC = () => { return ( <> <FirstName.Consumer> {(fname) => { return ( <LastName.Consumer> {(lname) => { return ( <h1>My name is {fname} {lname}</h1> ); }} </LastName.Consumer> ); }} </FirstName.Consumer> </> ); }; export default ComC; .......................................................................UseContext
ComB.js
import React,{ useContext } from 'react' import { FirstName, LastName } from './App'; const ComB = () => { const fname = useContext(FirstName); const lname = useContext(LastName); return( <h1> My name is {fname} {lname} </h1> ); }; export default ComB; ................................. If you use useContext API then you don't need of contextConsumer API.(ComC not required)