React Hooks let you use state and lifecycle features in function components. useState manages local state: const [value, setValue] = useState(initial). useEffect handles side effects with cleanup functions.
useRef holds mutable values that persist across renders without triggering re-renders. useMemo caches expensive computations. useCallback memoizes function references to prevent unnecessary child re-renders.
useContext consumes context values. useReducer manages complex state logic (like Redux). useImperativeHandle customizes ref-exposed methods. useLayoutEffect fires synchronously after DOM mutations.
Rules of Hooks: only call hooks at the top level, only call hooks from React functions. Custom hooks must start with "use".
use() is the newest hook — it reads resources like promises and context directly in render, enabling async components without useEffect boilerplate.