Wednesday, 6 December 2023

React Context

React Context Docs

How to work

  • Create a context
  • Create a context provider component. Add values in the provide
  • Wrap components with the provider component
  • For these wrapped components, can use useContext to access values

Create Context Sample Code

export const placeContext = createContext();

//create a function component PlaceContextProvider
const PlaceContextProvider = ({ children }) => {
  const [places, dispatch] = useReducer(placeReducer, []);
  return (
    <placeContext.Provider value={{ places, dispatch }}>
      {children}
    </placeContext.Provider>
  );
};

export default PlaceContextProvider;

Main parts to create a context

  1. call createContext()// const placeContext = createContext();
  2. Create a context provider component. Set values property when create this component.
  3. export the above context provider

Use context provider

import PlaceContextProvider from "./contexts/place";

function App() {
  return (
    <div className="App">
      <PlaceContextProvider>
        <Nav />
        <PlaceList />

        <PlaceForm />
      </PlaceContextProvider>
    </div>
  );
}

export default App;

Main parts to use context provider

  1. import context provider
  2. wrap components which will use context in the context provider

Use context in a component

import { placeContext } from "../contexts/place";

export default function Nav() {
  const { places } = useContext(placeContext);
  return <h1>You have visited {places.length} places.</h1>;
}

Main parts to use context in a component

  1. import context (not context provider)
  2. pass the context as paramter of useConext function
  3. destruct the result which is values we pass to context provider
  4. use these values in the component

No comments:

Post a Comment