What is the core advantage of using `useContext` in React compared to prop drilling when managing deeply nested component state?
The core advantage of using `useContext` over prop drilling is the elimination of passing props through intermediate components that don't need them. Prop drilling occurs when a component deep down in the component tree needs a prop that is available only at a higher level. This forces all the intermediate components to receive the prop and pass it down, even if they don't directly use it. This creates unnecessary coupling, makes components harder to reuse, and clutters the code. `useContext`, on the other hand, provides a way for a component to directly access data from a context provider without having to go through the intermediate components. A context provider makes data available to all its descendant components. Any component that calls `useContext` with that context will receive the data directly, regardless of its position in the component tree. This greatly simplifies data management, reduces code verbosity, and improves component reusability, especially in large and complex applications with deeply nested component structures. It essentially allows components to subscribe directly to a piece of global or application-level state without needing explicit connections through props.