Functions that let function components tap into state, lifecycle, and context.
Hooks, introduced in React 16.8, let function components do everything class components could — hold state, run side effects, access context — without ever needing this or a class. The Rules of Hooks (only call hooks at the top level, only call them from React function components or other hooks) exist because of how React actually implements them internally, not as an arbitrary style preference.
React associates each hook call with a slot in an internal linked list attached to that component's fiber, matched purely by the order the hooks were called in — not by name or any other identifier. Calling a hook conditionally (inside an if, or after an early return) can shift that call order between renders, causing React to associate the wrong state with the wrong hook — which is exactly the class of bug the Rules of Hooks exist to prevent.
What you'll walk away knowing