10LOC

#usesyncexternalstore

Reactadvanced

Context selector pattern to stop re-rendering every consumer

import { createContext, useContext, useSyncExternalStore } from "react";

type State = { count: number; user: { name: string } };
type Listener = () => void;

Build a selector hook on useSyncExternalStore so components only re-render when the slice of context state they read actually changes.