Message
Chat messages with user/assistant styling, branching, and action toolbars — built from components/ai-elements/message.
Example
User message with attachments, assistant response with markdown rendering, branching versions, and action buttons (like, dislike, copy, retry).
React Hooks Guide
React hooks are functions that let you "hook into" React state and lifecycle features from function components. Here's what you need to know:
Core Hooks
useState
Adds state to functional components:
const [count, setCount] = useState(0);
return ( <button onClick={() => setCount(count + 1)}> Count: {count} </button>);useEffect
Handles side effects (data fetching, subscriptions, DOM updates):
useEffect(() => { document.title = `You clicked ${count} times`;
// Cleanup function (optional) return () => { document.title = 'React App'; };}, [count]); // Dependency arrayWhen to Use Hooks
- ✅ Function components - Hooks only work in function components
- ✅ Replacing class components - Modern React favors hooks over classes
- ✅ Sharing stateful logic - Create custom hooks to reuse logic
- ❌ Class components - Use lifecycle methods instead
Rules of Hooks
- Only call hooks at the top level (not inside loops, conditions, or nested functions)
- Only call hooks from React functions (components or custom hooks)
Would you like to explore more advanced hooks like useCallback or useMemo?
React hooks are special functions that let you use React features in function components. The most common ones are:
- useState - for managing component state
- useEffect - for side effects like data fetching
- useContext - for consuming context values
- useRef - for accessing DOM elements
Here's a simple example:
function Counter() { const [count, setCount] = useState(0);
return ( <button onClick={() => setCount(count + 1)}> Clicked {count} times </button> );}Which specific hook would you like to learn more about?
Absolutely! React hooks are a powerful feature introduced in React 16.8. They solve several problems:
Key Benefits
- Simpler code - No need for class components
- Reusable logic - Extract stateful logic into custom hooks
- Better organization - Group related code together
Most Popular Hooks
| Hook | Purpose |
|---|---|
| useState | Add state to components |
| useEffect | Handle side effects |
| useContext | Access context values |
| useReducer | Complex state logic |
| useCallback | Memoize functions |
| useMemo | Memoize values |
The beauty of hooks is that they let you reuse stateful logic without changing your component hierarchy. Want to dive into a specific hook?