Components need to share data and trigger actions.
Props down: Parent passes data to children via props. Unidirectional data flow.
Events up: Children notify parents via callback props.
<SearchInput
value={query}
onChange={setQuery}
onSubmit={handleSearch}
/>
Context: Share data across many levels without prop drilling.
Global state: For app-wide data (current user, theme).
Interview tip: Default to props/callbacks. Use context for cross-cutting concerns. Global state for data shared across the app.