Client State
Data that exists only in the browser and is not persisted to a server. Examples include form input values, UI toggle states, selected tabs, and modal open/closed status. Client state is synchronous, immediately available, and typically managed with useState, useReducer, or simple state management libraries.
Code Splitting
A technique for breaking up JavaScript bundles into smaller chunks that can be loaded on demand. This reduces initial page load time by only loading the code needed for the current view. In React, this is typically done with dynamic imports and React.lazy().
Component Architecture
The practice of building user interfaces from reusable, self-contained pieces called components. Each component encapsulates its own structure (HTML), style (CSS), and behavior (JavaScript). Good component architecture involves decisions about component boundaries, composition patterns, and prop design.
Composition
The principle of building complex functionality by combining simpler pieces. In React, this means building UIs by nesting components rather than through inheritance. Composition is preferred because it's more flexible, easier to understand, and avoids the problems of deep inheritance hierarchies.
Compound Components
A React pattern where multiple components work together to form a complete UI element, sharing implicit state through context. The parent component manages state while child components consume it. Examples include tabs, accordions, and select dropdowns. This pattern provides flexible, composable APIs.
Custom Hooks
Functions that start with 'use' and can call other hooks. Custom hooks let you extract and reuse stateful logic between components. Unlike HOCs or render props, hooks don't add components to the tree—they just share logic. Examples include useForm, useFetch, useLocalStorage.