Back to Snippets

Optimizing React Performance With Context API And useMemo

JavaScript JavaScript / jQuery July 31, 2026

This React code snippet utilizes the Context API along with the useMemo hook to optimize performance by sharing data between components efficiently. It is particularly useful in scenarios where manual prop passing is cumbersome. By leveraging useMemo, unnecessary re-renders are prevented, thus ensuring smooth data sharing and minimizing performance issues. This approach is beneficial for complex component trees where data needs to be accessed globally.

Snippet Stats

Lines 23
Characters 557
Read 1 min
javascript • 23 lines
import React, { createContext, useState, useMemo } from 'react';

/**
 * @param {object} props - The component props
 * @param {object} props.children - The child components
 * @return {JSX.Element} The context provider
 * @throws {Error} If the context is not provided
 */
const DataContext = createContext();

const DataProvider = ({ children }) => {
   const [data, setData] = useState({});

   const contextValue = useMemo(() => ({ data, setData }), [data, setData]);

   return (
      <DataContext.Provider value={contextValue}>
         {children}
      </DataContext.Provider>
   );
};

export default DataProvider;

Found an issue with this snippet? Help us improve by reporting it. Report it →

Related Snippets

View all
JavaScript
This React pattern optimizes performance in functional components by preventing unnecessary re-renders using the useMemo and useCallback hooks. It is ...

React Performance Optimization Using useMemo And useCallback Hooks

JavaScript
This code snippet demonstrates how to optimize React hooks using useCallback and useMemo to prevent unnecessary re-renders and improve performance. It...

React Performance Optimization Using UseCallback And UseMemo Hooks

JavaScript
This React hook handles asynchronous data fetching with error handling and loading states, making it useful for fetching data from APIs. It utilizes R...

React Hook For Asynchronous Data Fetching With Error Handling And Loading States