Skip to main content

Menu

LEVEL 0
0/5 XP
HomeAboutTopicsPricingMy VaultStats

Categories

🤖 Artificial Intelligence
☁️ Cloud and Infrastructure
💾 Data and Databases
💼 Professional Skills
🎯 Programming and Development
🔒 Security and Networking
📚 Specialized Topics
HomeAboutTopicsPricingMy VaultStats
LEVEL 0
0/5 XP
GitHub
© 2026 CheatGrid™. All rights reserved.
Privacy PolicyTerms of UseAboutContact

React Frontend Framework Cheat Sheet

React Frontend Framework Cheat Sheet

Tables
Back to Web Development
Updated 2026-04-27
Next Topic: Redux Cheat Sheet

React is a declarative, component-based JavaScript library for building user interfaces, maintained by Meta. It uses a virtual DOM and Fiber reconciliation engine to efficiently update only what changes in the actual DOM. React 19 — the most significant release since React 18 — introduced an action-based async model, Server Components, and new hooks (useActionState, useFormStatus, useOptimistic) that simplify data mutation and form handling. The React Compiler (v1.0, stable since October 2025) now automatically memoizes components at build time, making most manual useMemo and useCallback unnecessary in new code.

Quick Index200 entries · 21 tables
Mind Map

21 tables, 200 concepts. Select a concept node to jump to its table row.

Preparing mind map...

Table 1: Core Hooks

HookExampleDescription
useState
const [count, setCount] = useState(0)
• Adds local state to functional components
• returns current value and updater function that triggers re-render.
useEffect
useEffect(() => {
fetchData()
}, [id])
• Runs side effects after render
• empty array runs once on mount, deps trigger on changes, cleanup via return function.
useContext
const theme = useContext(ThemeContext)
• Consumes Context values without wrapping in Consumer
• subscribes to nearest Provider above in tree.
useRef
const inputRef = useRef(null)
• Creates mutable reference that persists across renders without triggering updates
• commonly used for DOM access.
useReducer
const [state, dispatch] = useReducer(reducer, init)
• Alternative to useState for complex state logic
• accepts reducer (state, action) => newState following Redux pattern.
useMemo
const value = useMemo(() => compute(a, b), [a, b])
• Memoizes computed values to avoid expensive recalculations
• only recomputes when dependencies change.
useCallback
const handler = useCallback(() => fn(id), [id])
• Memoizes function identity between renders
• prevents child re-renders when passing callbacks as props.
useActionState
const [state, formAction, isPending] = useActionState(fn, init)
• React 19 hook that ties an async action to state
• returns current state, a dispatchable action ref, and pending flag; eliminates manual loading/error useState boilerplate.
useFormStatus
const { pending } = useFormStatus()
• React 19 hook that reads the parent form's submission state
• must be called from a component inside a <form>; provides pending, data, method, action.
useOptimistic
const [optimistic, addOptimistic] = useOptimistic(state, fn)
• Shows optimistic UI update immediately before async action completes
• automatically reverts on error.
useTransition
const [isPending, startTransition] = useTransition()
• Marks state updates as non-urgent transitions
• React 19 supports async functions — keeps UI responsive by deferring or pausing low-priority work.
useDeferredValue
const deferredValue = useDeferredValue(searchQuery)
• Returns deferred version of value that lags behind during urgent updates
• useful for expensive rendering like filtered lists.
useLayoutEffect
useLayoutEffect(() => {
measure()
}, [])
• Synchronous version of useEffect that fires before browser paint
• use for DOM measurements to prevent visual flicker.
useId
const id = useId()
• Generates unique stable IDs for accessibility attributes
• ensures matching IDs between server and client in SSR.
useImperativeHandle
useImperativeHandle(ref, () => ({
focus: () => input.focus()
}))
• Customizes ref instance value exposed to parent
• works with forwardRef or ref-as-prop (React 19+) to control imperative API.
useEffectEvent
const onMsg = useEffectEvent(data => {
if (!muted) play(data)
})
• Creates a non-reactive callback that always reads latest props/state
• safe to call inside effects without adding to deps array; experimental in React 19.

Table 2: Component Fundamentals

ConceptExampleDescription
Functional Component
function Button({ text }) {
return <button>{text}</button>
}
• Pure function that accepts props and returns JSX
• preferred over class components since hooks in React 16.8.
Props
<UserCard name="Alice" age={30} />
• Read-only data passed from parent to child
• treated as function arguments enabling component reusability.
Children prop
<Card>
<h1>Title</h1>
</Card>
• Special prop containing nested JSX elements between opening and closing tags
• enables composition patterns.
Default props
function Btn({ type = 'button' }) {}
• Fallback values for props using ES6 default parameters
• replaced older Component.defaultProps static property.
Prop destructuring
function User({ name, email }) {}
• Extracts props directly in function parameters
• supports nested destructuring and renaming.
Component composition
<Layout>
<Sidebar />
<Content />
</Layout>
• Building complex UIs from simpler components
• preferred over inheritance following "composition over inheritance" principle.
Pure component
const MemoComp = React.memo(Component)
• Component that returns same output for same props
• React.memo wraps functional components for shallow prop comparison.
Fragment
<>
<td>A</td>
<td>B</td>
</>
• Returns multiple elements without extra DOM nodes
• shorthand <> or explicit <React.Fragment> with key support.
Ref as prop
function Input({ ref, ...props }) {
return <input ref={ref} {...props} />
}
• React 19: ref can be passed as a regular prop to function components
• eliminates need for forwardRef wrapper.

Table 3: JSX and Rendering

PatternExampleDescription
JSX expression
<h1>Hello {user.name}</h1>
• Embeds JavaScript expressions in markup using curly braces
• evaluates to React elements at runtime.
Conditional rendering
{isLoggedIn ? <Dashboard /> : <Login />}
• Renders elements based on conditions using ternary operator, &&, or if statements
• no special template syntax.
List rendering
{items.map(item => <Item key={item.id} {...item} />)}
• Transforms arrays into element lists using map()
• requires unique key prop for reconciliation optimization.
Key prop
<li key={user.id}>{user.name}</li>
• Helps React identify changed items in lists
• should be stable and unique — avoid array indices for dynamic lists.
Document Metadata
<title>My Page</title>
<meta name="description" content="..." />
React 19: <title>, <link>, and <meta> tags rendered anywhere in the component tree are automatically hoisted to <head>.
Inline styling
<div style={{ color: 'red', fontSize: 16 }} />
• Applies styles as JavaScript object with camelCased properties
• numeric values auto-append px for lengths.
className
<div className="btn btn-primary" />
Sets CSS classes using className (not class) to avoid JavaScript keyword conflict.
dangerouslySetInnerHTML
<div dangerouslySetInnerHTML={{ __html: markup }} />
• Injects raw HTML directly
• named to highlight XSS risk — always sanitize untrusted content before use.
Portal
createPortal(<Modal />, document.body)
• Renders children into DOM node outside parent hierarchy
• useful for modals and tooltips while maintaining event bubbling.

Table 4: State Management

TechniqueExampleDescription
Local state
const [name, setName] = useState('')
• State scoped to single component using useState
• re-renders component when updated.
State updater function
setCount(prev => prev + 1)
• Passes function to setter instead of value
• ensures update uses most recent state — critical in async contexts.
Controlled component
<input value={text} onChange={e => setText(e.target.value)} />
• Form element whose value is controlled by React state
• value prop + onChange handler create single source of truth.
Context API
const Ctx = createContext()
<Ctx value={data}>
• Shares data across component tree without prop drilling
• Provider supplies value, consumers subscribe via useContext.
Reducer pattern
const reducer = (state, action) => {
switch(action.type) {...}
}
• Centralizes complex state logic in pure reducer function
• action objects describe state changes declaratively.
State batching
setName('Alice')
setAge(30)
React 18+ groups multiple state updates into a single re-render automatically — even in promises and timeouts.
Derived state
const fullName = firstName + ' ' + lastName
• Values computed from props/state during render
• avoid storing in separate state to prevent synchronization bugs.
Lifting state up
const [val, setVal] = useState()
<A val={val} />
<B onChange={setVal} />
• Move state to nearest common ancestor when multiple siblings need the same data
• passed down as props.
Uncontrolled component
<input defaultValue="hi" ref={inputRef} />
• Form element that manages own state via DOM
• access value through refs instead of state.
State colocation
function Panel() {
const [open, setOpen] = useState(false)
}
• Place state closest to where it's used
• limits re-render scope and opposes premature lifting.

Table 5: Effects and Lifecycle

PatternExampleDescription
Effect with cleanup
useEffect(() => {
const id = setInterval(tick, 1000)
return () => clearInterval(id)
}, [])
• Effect returning cleanup function runs before unmount or before next effect
• prevents memory leaks.
Dependency array
useEffect(() => fetch(url), [url])
Controls when effect runs — empty array runs once on mount, omitted runs every render, with deps runs on changes.
Custom Hook
function useWindowSize() {
const [size, setSize] = useState(...)
useEffect(() => {...}, [])
return size
}
• Extracts reusable stateful logic into function prefixed with "use"
• can call other hooks internally.
Effect synchronization
useEffect(() => {
socket.connect()
return () => socket.disconnect()
}, [roomId])
• Keeps component synchronized with external system
• connection logic mirrors component lifecycle.
Data fetching
useEffect(() => {
fetch(url).then(r => r.json()).then(setData)
}, [url])
• Loading external data in effect
• consider React Query or SWR for production use to handle race conditions.
Event listeners
useEffect(() => {
window.addEventListener('resize', handle)
return () => window.removeEventListener('resize', handle)
}, [])
• Attaching global event handlers outside React's event system
• cleanup prevents duplicate listeners.
Interval/Timeout
useEffect(() => {
const id = setTimeout(() => setShow(true), 1000)
return () => clearTimeout(id)
}, [])
• Running timed operations
• cleanup cancels pending timers to avoid state updates on unmounted components.
Layout effect
useLayoutEffect(() => {
const h = ref.current.offsetHeight
setHeight(h)
}, [])
• Fires synchronously before browser paint
• use for DOM measurements that affect layout to prevent flicker.

Table 6: Performance Optimization

TechniqueExampleDescription
React Compiler
// babel-plugin-react-compiler
// no code changes required
• Build-time tool (v1.0, stable Oct 2025) that automatically memoizes components and hooks
• makes most manual useMemo/useCallback unnecessary; opt-in via Babel/Vite plugin.
React.memo
const List = React.memo(function List({ items }) {...})
• Prevents re-renders if props haven't changed using shallow comparison
• second argument allows custom comparison.
useMemo
const sorted = useMemo(() => items.sort(), [items])
• Caches expensive computations between renders
• React Compiler handles this automatically when enabled.
useCallback
const onClick = useCallback(() => fn(id), [id])
• Memoizes function reference to prevent unnecessary child re-renders
• React Compiler handles this automatically when enabled.
Code splitting
const Comp = React.lazy(() => import('./Comp'))
• Splits bundle into smaller chunks loaded on demand
• React.lazy with dynamic import() creates split points.
Suspense
<Suspense fallback={<Spinner />}>
<LazyComp />
</Suspense>
• Shows fallback UI while lazy component or async data loads
• works with React.lazy and data fetching libraries.
List virtualization
<FixedSizeList height={400} itemCount={1000} itemSize={35}>
• Renders only visible list items using libraries like react-window
• dramatically improves performance for long lists.
useTransition
startTransition(() => setQuery(input))
• Marks updates as low priority
• keeps UI responsive during expensive re-renders by allowing React to interrupt work.
useDeferredValue
const deferred = useDeferredValue(searchTerm)
• Creates laggy version of value that updates after urgent renders
• alternative to debouncing for responsive UIs.
Key optimization
items.map(item => <Item key={item.id} />)
• Using stable unique keys helps React identify which items changed
• avoids unnecessary DOM mutations.
Production build
npm run build
• Creates optimized bundle with minification and dead code elimination
• significantly faster than development build.

Table 7: Component Patterns

PatternExampleDescription
Compound components
<Tabs>
<Tabs.List>
<Tabs.Tab />
</Tabs.List>
</Tabs>
• Components that work together sharing implicit state
• creates cohesive API like native HTML <select> and <option>.
Provider pattern
<ThemeProvider>
<App />
</ThemeProvider>
• Wraps tree with Context Provider to share values
• avoids prop drilling for global concerns like theme or auth.
Render props
<DataProvider render={data => <Display data={data} />} />
• Passes function as prop that component calls to determine render output
• largely superseded by custom hooks.
Higher-Order Component
const Enhanced = withAuth(Component)
• Function that takes component and returns enhanced version
• adds props or wraps with logic — less common since hooks and React Compiler.
Composition
<Card>
{children}
</Card>
• Building components by combining smaller ones
• uses children prop to accept nested content flexibly.
Slot pattern
<Layout header={<Header />} sidebar={<Sidebar />} />
• Passes multiple JSX elements as named props
• more explicit than children for complex layouts.
Container/Presentational
// Container: fetches data
// Presentational: renders UI
• Separates logic from presentation
• containers handle state/effects, presentational components are pure functions.
Controlled vs Uncontrolled
// Controlled: value={state}
// Uncontrolled: ref={inputRef}
• Controlled components use React state as source of truth
• uncontrolled rely on DOM state accessed via refs.
Activity component
<Activity mode="hidden">
<ExpensivePanel />
</Activity>
• React 19.2: hides or shows UI while preserving component state and subscriptions
• mode is "visible" or "hidden".

Table 8: Event Handling

ConceptExampleDescription
Event handler
<button onClick={handleClick}>Click</button>
• Function passed to event prop
• convention names handlers handleEvent or onEvent.
Event object
function handle(e) {
e.preventDefault()
console.log(e.target.value)
}
• SyntheticEvent instance with target, currentTarget
• methods preventDefault(), stopPropagation().
Synthetic events
onClick={e => console.log(e.type)}
• React's cross-browser wrapper around native events
• normalized API works consistently across all browsers.
Passing arguments
onClick={() => deleteRow(id)}
• Binding additional parameters to handlers using arrow function or bind
• arrow function is more common.
Named handler
const handleClick = () => {...}
<button onClick={handleClick}>
• Declaring function separately then passing reference
• better for reusability and testing than inline.
Inline handler
<button onClick={() => alert('clicked')}>
• Defining function directly in JSX
• convenient for simple logic but creates new function each render.
Event delegation
React attaches all handlers to the root container; events bubble up to a single listener for performance.
• React 17+ attaches to root instead of document
• improves micro-frontend isolation and compatibility.
Custom events
const event = new CustomEvent('myEvent')
element.dispatchEvent(event)
• Dispatching browser custom events
• React handlers work with native custom events on refs.

Table 9: Forms and Validation

TechniqueExampleDescription
Controlled input
<input value={name} onChange={e => setName(e.target.value)} />
• Input value controlled by state
• onChange handler updates state creating bidirectional binding.
Form Actions
const [state, formAction] = useActionState(fn, init)
<form action={formAction}>
• React 19: native action prop accepts an async function
• React manages pending state, errors, and resets automatically.
Form submission
<form onSubmit={e => {
e.preventDefault()
submit(data)
}}>
Intercepting submit event to prevent default page reload and handle data programmatically.
Multiple inputs
const change = e => setState({...state, [e.target.name]: e.target.value})
Handling multiple form fields with single handler using name attribute and computed property names.
Checkbox
<input type="checkbox" checked={agreed} onChange={e => setAgreed(e.target.checked)} />
• Uses checked prop and e.target.checked for value
• controlled with boolean state.
Select dropdown
<select value={selected} onChange={e => setSelected(e.target.value)}>
<option value="a">A</option>
</select>
• Uses value on <select> not selected on <option>
• single source of truth pattern.
Textarea
<textarea value={text} onChange={e => setText(e.target.value)} />
• Uses value prop like inputs (not children)
• controlled the same way for consistency.
File input
<input type="file" ref={fileRef} />
• Always uncontrolled because value is read-only
• access files via fileRef.current.files.
Form libraries
const { register, handleSubmit } = useForm()
Libraries like React Hook Form or Formik reduce boilerplate for validation, submission, and field management.
Validation
const error = email && !email.includes('@') ? 'Invalid email' : null
• Implementing inline validation by checking state values
• display errors conditionally based on validation rules.

Table 10: Refs and DOM Access

MethodExampleDescription
useRef
const inputRef = useRef(null)
<input ref={inputRef} />
• Creates mutable reference to DOM element or value
• current persists without causing re-renders.
DOM manipulation
inputRef.current.focus()
• Directly calling DOM methods via ref
• escape hatch for imperative operations React doesn't provide.
Ref as prop
function Input({ ref }) {
return <input ref={ref} />
}
• React 19: ref is a regular prop in function components
• no forwardRef wrapper needed — simpler and cleaner.
Ref forwarding
const Comp = forwardRef((props, ref) => <input ref={ref} />)
• Legacy pattern passing ref from parent through component to child
• still works but forwardRef will be deprecated in favor of ref-as-prop.
Ref cleanup
<div ref={node => {
setup(node)
return () => cleanup(node)
}} />
• React 19: ref callbacks can return a cleanup function called when element unmounts
• replaces manual null check pattern.
Callback ref
<div ref={node => setNode(node)} />
• Ref as function called with DOM node on mount and null on unmount
• useful for measuring or observing nodes.
Refs in loops
const itemRefs = useRef(new Map())
<div ref={node => itemRefs.current.set(id, node)} />
• Storing multiple refs in Map or array
• ref callback pattern manages dynamic lists of refs.
useImperativeHandle
useImperativeHandle(ref, () => ({
focus: () => inputRef.current.focus()
}))
• Customizes instance value exposed to parent via ref
• controls what methods/properties are public.
Storing values
const countRef = useRef(0)
countRef.current++
• Using ref to hold mutable value that doesn't trigger re-renders
• useful for intervals, previous values, instance variables.

Table 11: Context and Global State

PatternExampleDescription
createContext
const ThemeContext = createContext('light')
• Creates Context object with default value
• default used when no Provider exists above in tree.
Context Provider
<ThemeContext value="dark">
<App />
</ThemeContext>
React 19: use context directly as a Provider — <ThemeContext value="..."> replaces legacy <ThemeContext.Provider value="...">.
useContext
const theme = useContext(ThemeContext)
• Reads context value from nearest Provider above
• replaces older Context.Consumer pattern.
Context with reducer
const [state, dispatch] = useReducer(reducer, init)
<Ctx value={{state, dispatch}}>
• Combining Context + useReducer for global state management
• lightweight alternative to Redux for simpler apps.
Custom provider
function DataProvider({ children }) {
const [data, setData] = useState()
return <Ctx value={{data, setData}}>{children}</Ctx>
}
• Wrapping Provider in component with logic
• encapsulates state management and provides clean API.
Multiple contexts
<ThemeProvider>
<UserProvider>
<App />
</UserProvider>
</ThemeProvider>
• Nesting multiple Providers for different concerns
• component can consume multiple contexts with separate useContext calls.
Context performance
const value = useMemo(() => ({state, dispatch}), [state])
• Memoizing context value prevents unnecessary consumer re-renders
• split contexts to limit update scope.

Table 12: Error Handling

TechniqueExampleDescription
Error Boundary
class ErrorBoundary extends React.Component {
componentDidCatch(error, info) {...}
render() { return this.state.hasError ? <Fallback /> : this.props.children }
}
• Class component that catches JavaScript errors in child tree
• displays fallback UI instead of crashing the entire app.
getDerivedStateFromError
static getDerivedStateFromError(error) {
return { hasError: true }
}
• Lifecycle method for updating state when error is thrown
• used to render fallback in the next render pass.
componentDidCatch
componentDidCatch(error, errorInfo) {
logError(error, errorInfo.componentStack)
}
• Lifecycle for side effects after error is caught
• log errors to reporting service while displaying fallback.
Error boundary library
<ErrorBoundary FallbackComponent={ErrorFallback}>
<App />
</ErrorBoundary>
react-error-boundary provides hooks-based error handling (useErrorBoundary), reset, and retry capabilities.
Suspense boundary
<Suspense fallback={<Loading />}>
<AsyncComp />
</Suspense>
• Shows fallback while async components or data loads
• catches thrown promises from React.lazy or data fetching.
Try-catch in handlers
try {
riskyOperation()
} catch (error) {
setError(error.message)
}
• Manual error handling in event handlers or effects
• Error Boundaries do not catch errors in these contexts.

Table 13: Routing (React Router)

ComponentExampleDescription
BrowserRouter
<BrowserRouter>
<App />
</BrowserRouter>
• Uses HTML5 history API for clean URLs
• wraps app to enable routing without hash.
Routes
<Routes>
<Route path="/" element={<Home />} />
</Routes>
• Container for route definitions replacing older <Switch>
• matches first route that fits.
Route
<Route path="/users/:id" element={<User />} />
• Defines path-to-component mapping
• dynamic segments start with : for parameters.
Link
<Link to="/about">About</Link>
• Creates navigation links without full page reload
• renders anchor tag with click handler.
NavLink
<NavLink to="/home" className={({isActive}) => isActive ? 'active' : ''} />
• Like Link but adds active styling when current route matches
• useful for navigation menus.
useNavigate
const navigate = useNavigate()
navigate('/dashboard')
• Hook for programmatic navigation
• replaces older useHistory with simpler API.
useParams
const { id } = useParams()
• Extracts URL parameters from current route
• returns object with param names as keys.
useLocation
const location = useLocation()
• Returns current location object with pathname, search, hash, state
• useful for tracking page views.
Nested routes
<Route path="/users" element={<Users />}>
<Route path=":id" element={<User />} />
</Route>
• Defines child routes under parent
• relative paths combine with parent path.
Outlet
function Layout() {
return <div><Nav /><Outlet /></div>
}
• Renders matched child route in parent component
• enables nested layouts.
TanStack Router
const route = createRoute({
getParentRoute: () => rootRoute,
path: '/users/$id',
})
• Fully type-safe alternative to React Router
• search params, path params, and loader data are all TypeScript-inferred with no configuration.

Table 14: Testing

ToolExampleDescription
React Testing Library
render(<Button />)
screen.getByRole('button')
• Encourages testing user behavior not implementation
• queries based on accessibility attributes.
userEvent
await user.click(button)
• More realistic user interaction simulation than fireEvent
• handles focus, timing, and keyboard events properly.
screen queries
screen.getByText('Submit')
Built-in query methods like getBy, queryBy, findBy with variants for text, role, label, test ID, etc.
waitFor
await waitFor(() => expect(screen.getByText('Loaded')).toBeInTheDocument())
• Waits for async changes like state updates or API responses
• retries until callback stops throwing.
render
const { container } = render(<App />)
• Renders component into virtual DOM for testing
• returns queries and container element.
fireEvent
fireEvent.click(button)
• Triggers DOM events on elements
• synchronous simulation — prefer userEvent for realistic interaction.
Jest
test('renders title', () => {...})
• Test runner and assertion library
• provides describe, test, expect, and mocking capabilities.
Vitest
import { test, expect } from 'vitest'
test('adds', () => expect(1+1).toBe(2))
• Jest-compatible test runner built on Vite
• significantly faster cold starts and watch mode; ideal for Vite-based React projects; drop-in replacement for Jest.
Mock functions
const onClick = jest.fn()
expect(onClick).toHaveBeenCalled()
• Creates spy functions to verify calls
• jest.fn() (or vi.fn() in Vitest) tracks arguments and call count.
Snapshot testing
expect(tree).toMatchSnapshot()
• Captures component output and detects unexpected changes
• useful for catching regressions in UI structure.

Table 15: TypeScript Integration

PatternExampleDescription
Props interface
interface Props { name: string; age: number }
function User(props: Props) {}
• Separate type definition for props
• enables reuse and clearer documentation.
Component typing
function Button({ text }: { text: string }) {}
• Inline props type for simple components
• clear and concise for few props.
useState typing
const [user, setUser] = useState<User | null>(null)
• Explicitly typing state generic when TypeScript can't infer
• necessary for complex types or null initialization.
Event typing
const handle = (e: React.ChangeEvent<HTMLInputElement>) => {}
• Typing event handlers with specific event types
• ensures type safety for e.target properties.
Ref typing
const ref = useRef<HTMLDivElement>(null)
• Providing element type for ref
• null initial value requires union type for .current.
Children typing
interface Props { children: React.ReactNode }
• Using ReactNode type for children prop
• accepts any valid React child (elements, strings, numbers, fragments).
Generic components
function List<T>(props: { items: T[]; render: (item: T) => ReactNode }) {}
• Components accepting generic type parameters
• enables type-safe reusable components.
Context typing
const Ctx = createContext<ContextType | undefined>(undefined)
• Typing Context value and initial value
• undefined forces Provider usage with runtime check.
FC type
const Button: React.FC<Props> = ({ text }) => {}
• Typing component as FunctionComponent
• less common now as implicit children and return type are rarely needed.

Table 16: Advanced React Features

FeatureExampleDescription
Concurrent rendering
createRoot(el).render(<App />)
• React 18+ feature enabling interruptible rendering
• allows React to pause, abort, and prioritize urgent updates.
Automatic batching
setName('Alice')
setAge(30)
React 18+ groups multiple state updates into a single re-render — even in promises and timeouts.
React Compiler
// install: babel-plugin-react-compiler
// or: vite-plugin-react with babel option
• Build-time optimizer (v1.0 stable, Oct 2025) that automatically memoizes components
• eliminates need for manual useMemo/useCallback.
Server Components
async function Page() {
const data = await fetchData()
return <Product data={data} />
}
• Async components that run only on server
• fetch data directly, render to HTML, send zero JS for that part to client.
'use client' directive
'use client'
import { useState } from 'react'
• Marks a module boundary for client-side code in RSC
• components below this point ship JS to the browser.
Server Actions
'use server'
async function submitForm(formData) {
await db.save(formData)
}
• Functions marked with 'use server' that run server-side
• called from client components or form action props.
Activity component
<Activity mode="hidden">
<ExpensivePanel />
</Activity>
• React 19.2: hides or shows UI without unmounting
• preserves state and subscriptions
• mode is "visible" or "hidden".
ViewTransition
<ViewTransition>
{url === '/' ? <Home /> : <Details />}
</ViewTransition>
Experimental: wraps elements to enable browser-native View Transition API animations on startTransition, useDeferredValue, or Suspense changes.
Streaming SSR
renderToPipeableStream(<App />)
• Server-side rendering that streams HTML to client progressively
• faster time-to-first-byte using Suspense boundaries.
startTransition
startTransition(async () => {
await submitData(form)
})
• Marks updates as non-urgent transitions
• React 19 supports async functions, keeping UI responsive without blocking.
Strict Mode
<StrictMode>
<App />
</StrictMode>
• Development-only tool that highlights potential problems
• intentionally double-invokes functions to surface side effects.
Profiler
<Profiler id="Nav" onRender={callback}>
<Nav />
</Profiler>
• Measures rendering performance programmatically
• callback receives timing info for production monitoring.
use hook
const data = use(promise)
• React 19 hook that reads resources like promises or context
• uniquely can be called conditionally unlike other hooks.

Table 17: Styling Approaches

MethodExampleDescription
Tailwind CSS
<div className="flex items-center gap-4 p-4 bg-white" />
• Utility-first CSS framework with predefined classes
• rapid development — most popular React styling choice in 2025–26.
CSS Modules
import styles from './Button.module.css'
<div className={styles.button} />
• Locally scoped CSS by default
• build tool transforms class names to prevent global conflicts.
Styled Components
const Button = styled.button\color: blue;``
• CSS-in-JS library using tagged templates
• styles scoped to component with dynamic theming support.
Emotion
<div css={css\color: red;`} />`
• CSS-in-JS with both string and object styles
• strong performance and widely used in design systems.
Sass/SCSS
import './styles.scss'
• CSS preprocessor with variables, nesting, mixins
• requires build configuration but uses familiar syntax.
Inline styles
<div style={{ backgroundColor: 'blue', padding: 20 }} />
• JavaScript object with camelCased properties
• limited pseudo-selectors and media queries, dynamic by default.
CSS-in-JS
Libraries embedding styles in JavaScript; component-scoped with access to props and state for dynamic styling.
Generic term for styling solutions collocating CSS with components.

Table 18: DevTools and Debugging

ToolExampleDescription
React DevTools
Browser extension showing component tree with props, state, hooks; inspect and edit values live.
• Official debugging browser extension for Chrome and Firefox
• essential for development.
Components tab
Navigate component hierarchy; view props, state, hooks, owners, source code location.
• Explores React component structure in DevTools
• search and filter components.
Profiler tab
Records rendering performance; flame graph shows which components render and why.
• Identifies performance bottlenecks
• measures commit phases and component render time.
Console logging
console.log('State:', state)
• Basic debugging by printing values
• effective for understanding data flow and spotting unexpected updates.
React strict mode warnings
Logs warnings about deprecated APIs and unsafe lifecycles; double-invokes effects to surface hidden bugs.
• Highlights potential problems in development
• identifies impure components and stale closures.
Source maps
devtool: 'source-map' in config
• Maps compiled code to source
• enables debugging original TypeScript/JSX in browser despite minification.
Error boundaries
Catch and log render errors; prevent entire app crash with fallback UI.
Provides graceful error handling in component tree.
React Suspense DevTools
DevTools show Suspense boundaries and loading states; visualizes loading sequences and boundary states.
Helps debug async loading sequences and Suspense tree structure.

Table 19: Build Tools and Ecosystem

ToolExampleDescription
Vite
npm create vite@latest my-app -- --template react
• Fast dev server using native ES modules
• dramatically faster HMR and builds than webpack-based tools
• recommended for new projects.
Next.js
npx create-next-app@latest
• Production framework with SSR, SSG, routing, API routes, and React Server Components built-in
• most popular production React framework.
TanStack Start
npx create-tsrouter-app@latest my-app
• Full-stack framework built on TanStack Router
• type-safe routing, server functions, and SSR
• rapidly growing alternative to Next.js.
Remix
npx create-remix@latest
• Framework focused on web fundamentals
• nested routing, progressive enhancement, optimistic UI
• merged with React Router v7.
React Native
npx react-native init MyApp
• Build native mobile apps using React
• shared codebase for iOS and Android with platform-specific code.
Gatsby
npm init gatsby
• Static site generator with GraphQL data layer
• excellent for content-heavy sites and blogs.
Webpack
Module bundler that compiles JavaScript and assets; highly configurable but complex setup.
• Flexible build tool used by legacy React projects
• handles code splitting, loaders, plugins.
Turbopack
Built into Next.js as next dev --turbopack
• Rust-based Webpack successor by Vercel
• bundled with Next.js
• significantly faster cold starts and incremental builds.
Babel
@babel/preset-react
• Transpiles JSX and modern JS to compatible JavaScript
• also hosts the React Compiler plugin.
ESLint
eslint-plugin-react, eslint-plugin-react-hooks
• Linting tool for code quality
• React-specific plugins enforce best practices and hooks rules.
TypeScript
npm create vite@latest my-app -- --template react-ts
• Adds static typing to JavaScript
• catches errors at compile time, improves IDE support
• recommended for all new projects.
Create React App (legacy)
npx create-react-app my-app
• Zero-config starter — no longer actively maintained
• use Vite or Next.js for new projects.

Table 20: State Management Libraries

LibraryExampleDescription
Redux Toolkit
const store = configureStore({ reducer })
useSelector(state => state.user)
• Modern Redux with less boilerplate
• includes createSlice, createAsyncThunk, opinionated defaults
• best for large teams.
Zustand
const useStore = create(set => ({ count: 0, inc: () => set(s => ({ count: s.count + 1 })) }))
• Minimal state management with hooks-based API
• no providers, boilerplate-free, tiny bundle
• most popular lightweight option.
TanStack Query
const { data } = useQuery({ queryKey: ['user'], queryFn: fetchUser })
• Server state management with caching, sync, and background updates
• not general state but the standard for async data.
SWR
const { data } = useSWR('/api/user', fetcher)
• Data fetching hook with caching
• "stale-while-revalidate" strategy
• lightweight Vercel-maintained alternative to TanStack Query.
Jotai
const [count, setCount] = useAtom(countAtom)
• Primitive and flexible atom-based state
• bottom-up approach, no string keys, TypeScript-first.
MobX
const store = observable({ count: 0 })
const Counter = observer(() => <div>{store.count}</div>)
• Reactive state management using observables
• automatic dependency tracking, minimal boilerplate.
Recoil
const [text, setText] = useRecoilState(textState)
• Facebook's atomic state library with fine-grained subscriptions
• not actively maintained — prefer Jotai for similar patterns.

Table 21: Accessibility Best Practices

PracticeExampleDescription
Semantic HTML
<button>Click</button> not <div onClick>Click</div>
• Use correct HTML elements for functionality
• provides built-in keyboard support and screen reader context.
Form labels
<label htmlFor="email">Email</label>
<input id="email" />
• Associate labels with inputs using htmlFor
• enables clicking label to focus input
• required for screen readers.
Focus management
useEffect(() => inputRef.current.focus(), [])
• Programmatically move focus to appropriate elements
• essential for modals, route changes, dynamic content.
ARIA attributes
<div role="button" aria-label="Close" />
• Add accessibility semantics when semantic HTML is insufficient
• use sparingly — prefer native elements.
aria-label
<button aria-label="Close dialog">×</button>
Provides text alternative for screen readers when visible text is insufficient or absent.
Live regions
<div aria-live="polite" aria-atomic="true">{status}</div>
• Announce dynamic content changes to screen readers
• polite waits for pause, assertive interrupts.
Keyboard navigation
onKeyDown={e => e.key === 'Enter' && handleClick()}
• Ensure all interactive elements are accessible via keyboard
• implement arrow keys for custom widgets.
useId for a11y
const id = useId()
<label htmlFor={id}>Name</label>
<input id={id} />
• Generates stable unique IDs for linking labels and inputs
• safe in SSR — avoids hydration mismatches.
Skip links
<a href="#main" className="skip-link">Skip to main</a>
• Bypass navigation links at page top
• allows keyboard users to jump directly to content.
Alt text
<img src="logo.png" alt="Company logo" />
• Describe image content for screen readers
• use empty alt="" for purely decorative images.
Color contrast
Verify with tools like axe or Lighthouse
Minimum 4.5:1 ratio for normal text, 3:1 for large text per WCAG 2.1 AA.
Back to Web Development
Next Topic: Redux Cheat Sheet

References

Official Documentation

  1. React Official Documentation - https://react.dev/
  2. React v19 Release Blog - https://react.dev/blog/2024/12/05/react-19
  3. React Labs: View Transitions, Activity, and more (April 2025) - https://react.dev/blog/2025/04/23/react-labs-view-transitions-activity-and-more
  4. React Compiler v1.0 Release (October 2025) - https://react.dev/blog/2025/10/07/react-compiler-1
  5. React Hooks Reference - https://react.dev/reference/react/hooks
  6. React API Reference - https://react.dev/reference/react
  7. useActionState - https://react.dev/reference/react/useActionState
  8. useFormStatus - https://react.dev/reference/react-dom/hooks/useFormStatus
  9. useOptimistic - https://react.dev/reference/react/useOptimistic
  10. useTransition - https://react.dev/reference/react/useTransition
  11. useDeferredValue - https://react.dev/reference/react/useDeferredValue
  12. useEffectEvent (experimental) - https://react.dev/reference/react/experimental_useEffectEvent
  13. use hook - https://react.dev/reference/react/use
  14. Activity component - https://react.dev/reference/react/Activity
  15. ViewTransition component - https://react.dev/reference/react/ViewTransition
  16. React Compiler Documentation - https://react.dev/learn/react-compiler
  17. Server Components - https://react.dev/reference/rsc/server-components
  18. 'use client' directive - https://react.dev/reference/rsc/use-client
  19. 'use server' directive - https://react.dev/reference/rsc/use-server
  20. forwardRef (deprecated in React 19) - https://react.dev/reference/react/forwardRef
  21. Ref as a prop (React 19) - https://react.dev/blog/2024/12/05/react-19#ref-as-a-prop
  22. Ref cleanup functions (React 19) - https://react.dev/blog/2024/12/05/react-19#cleanup-functions-for-refs
  23. Context Provider shorthand (React 19) - https://react.dev/reference/react/createContext
  24. Document Metadata title - https://react.dev/reference/react-dom/components/title
  25. Document Metadata meta - https://react.dev/reference/react-dom/components/meta
  26. React Developer Tools - https://react.dev/learn/react-developer-tools
  27. React Testing Library Documentation - https://testing-library.com/docs/react-testing-library/intro/
  28. React TypeScript Cheatsheet - https://react-typescript-cheatsheet.netlify.app/
  29. Legacy React Documentation - https://legacy.reactjs.org/docs/getting-started.html
  30. React Native Documentation - https://reactnative.dev/
  31. React 19 Upgrade Guide - https://react.dev/blog/2024/04/25/react-19-upgrade-guide

Technical Blogs & Tutorials

  1. React 19 New Hooks Guide (useActionState, useFormStatus, useOptimistic) - https://www.manuelsanchezdev.com/blog/react-19-new-hooks-useoptimistic-useformstatus-useactionstate
  2. useActionState Practical Guide - https://blog.logrocket.com/react-useactionstate/
  3. React 19 useActionState Forms Guide - https://ishu.dev/post/react-19-useactionstate-forms-guide-2026-04-04
  4. React Compiler: Automatic Memoization Deep Dive - https://dev.to/pockit_tools/react-compiler-deep-dive-how-automatic-memoization-eliminates-90-of-performance-optimization-work-1351
  5. React Compiler Migration Guide 2026 - https://www.live-laugh-love.world/blog/react-compiler-migration-guide-2026/
  6. Why React 19 Compiler Changes Everything - https://www.sitepoint.com/why-react-19-s-compiler-changes-everything-for-senior-devs/
  7. Understanding React's useEffectEvent - https://peterkellner.net/2026/01/09/understanding-react-useeffectevent-vs-useeffect/
  8. React useEffectEvent Solves Stale Closures - https://blog.logrocket.com/react-has-finally-solved-its-biggest-problem-useeffectevent/
  9. React 19 Ref as Prop and Cleanup - https://blog.saeloun.com/2025/03/24/react-19-ref-as-prop/
  10. React 19 forwardRef Deprecation Guide - https://mudafar.medium.com/goodbye-forwardref-react-19-finally-fixes-the-ref-confusion-3412ae44291f
  11. React 19 Server Components Deep Dive - https://therobin.dev/blog/react-server-components-deep-dive-2026
  12. React Server Components Mental Model 2026 - https://medium.com/@mernstackdevbykevin/the-definitive-handbook-for-full-stack-developers-on-react-server-components-in-2026-c7ea9180e12e
  13. React Server Components Production Best Practices - https://www.growin.com/blog/react-server-components/
  14. React ViewTransition Complete Guide - https://dev.to/caisere/the-complete-guide-to-react-viewtransition-just-released-4k0n
  15. React Activity Component Overview - https://certificates.dev/blog/react-viewtransition-smooth-animations-made-simple
  16. React 19 Document Metadata Feature - https://blog.logrocket.com/guide-react-19-new-document-metadata-feature/
  17. React 19 Resource Preloading APIs - https://medium.com/@ogundipe.eniola/react-19-updates-resource-preloading-hydration-error-reporting-and-custom-elements-8486ba180137
  18. React 19 Web Components Support - https://sordyl.dev/blog/react-19-support-for-web-components/
  19. React in 2026: From UI Library to Full-Stack Architecture - https://medium.com/@basakbilginoglu/react-in-2026-from-ui-library-to-full-stack-architecture-0bda700d765b
  20. Modern React Data Fetching Handbook - https://www.freecodecamp.org/news/the-modern-react-data-fetching-handbook-suspense-use-and-errorboundary-explained/
  21. React Performance Optimization Guide - https://blog.logrocket.com/a-complete-guide-to-react-performance-optimization/
  22. State Management in 2026: Redux vs Zustand vs Context - https://medium.com/@abdurrehman1/state-management-in-2026-redux-vs-zustand-vs-context-api-ad5760bfab0b
  23. React Concurrent Features Overview - https://certificates.dev/blog/react-concurrent-features-an-overview
  24. React Design Patterns Guide - https://www.sayonetech.com/blog/react-design-patterns/
  25. Building Reusable React Components in 2026 - https://medium.com/@romko.kozak/building-reusable-react-components-in-2026-a461d30f8ce4
  26. Virtual DOM, Reconciliation, and React Fiber Architecture - https://medium.com/@muskanbatra0024/virtual-dom-reconciliation-and-react-fiber-architecture-415fb3c72f8d
  27. React Context API Best Practices 2026 - https://medium.com/@ayush22005kumar/react-context-api-explained-purpose-usage-examples-and-best-practices-2026-guide-b7b4f93926f9
  28. Understanding useEffect vs useLayoutEffect - https://kentcdodds.com/blog/useeffect-vs-uselayouteffect
  29. How to use React Context effectively - https://kentcdodds.com/blog/how-to-use-react-context-effectively
  30. React Hooks Cheat Sheet - https://blog.logrocket.com/react-hooks-cheat-sheet-solutions-common-problems/
  31. Understanding React's useTransition - https://www.nutrient.io/blog/react-usetransition-guide/
  32. React Event Handling Guide - https://www.greatfrontend.com/react-interview-playbook/react-event-handling
  33. React Accessibility Best Practices Guide - https://www.allaccessible.org/blog/react-accessibility-best-practices-guide
  34. React 19 Hooks Are Evolving - https://medium.com/@mernstackdevbykevin/react-hooks-are-getting-a-major-upgrade-heres-what-every-developer-needs-to-know-in-2026-9f2a14158793
  35. React 19 Actions: Simplify Form Submission - https://www.freecodecamp.org/news/react-19-actions-simpliy-form-submission-and-loading-states/
  36. React 19 Actions Changed How We Build Forms - https://www.amillionmonkeys.co.uk/blog/react-19-actions-form-handling
  37. Smooth Async Transitions in React 19 - https://blog.appsignal.com/2025/08/27/smooth-async-transitions-in-react-19.html

GitHub Repositories & Code Examples

  1. React Fiber Architecture - https://github.com/acdlite/react-fiber-architecture
  2. React Error Boundary Library - https://github.com/bvaughn/react-error-boundary
  3. React Hook Form - https://react-hook-form.com/
  4. React Window (Virtualization) - https://react-window.now.sh/
  5. Styled Components - https://styled-components.com/
  6. Emotion CSS-in-JS - https://emotion.sh/docs/introduction
  7. CSS Modules - https://github.com/css-modules/css-modules
  8. Prop-types (legacy) - https://github.com/facebook/prop-types
  9. React Compiler Playground - https://playground.react.dev/
  10. Running React Compiler in Production (Reddit case study) - https://www.reddit.com/r/reactjs/comments/1po9t3c/running_react_compiler_in_production_for_6_months/

Frameworks and Build Tools

  1. Next.js Documentation - https://nextjs.org/
  2. Vite Documentation - https://vitejs.dev/
  3. TanStack Start Documentation - https://tanstack.com/start/latest
  4. TanStack Router Documentation - https://tanstack.com/router/latest
  5. Remix Framework - https://remix.run/
  6. Gatsby Documentation - https://www.gatsbyjs.com/
  7. React Router Documentation - https://reactrouter.com/
  8. Webpack Documentation - https://webpack.js.org/
  9. Turbopack Documentation - https://turbo.build/pack
  10. Babel Documentation - https://babeljs.io/
  11. TypeScript Documentation - https://www.typescriptlang.org/
  12. Create React App (legacy, unmaintained) - https://create-react-app.dev/

TanStack Router Resources

  1. TanStack Router vs React Router Comparison 2026 - https://www.scaled2c.com/tanstack-router-vs-react-router-v7-comparison-2026
  2. TanStack Router Type Safety - https://tanstack.com/router/latest/docs/guide/type-safety
  3. Modern React Navigation with TanStack Router - https://javascript.plainenglish.io/modern-react-navigation-with-tanstack-router-2025-guide-c6b1a822ecd7
  4. TanStack vs React Router vs Next: Community Discussion - https://www.reddit.com/r/reactjs/comments/1qqu390/tanstack_vs_react_router_vs_next/

State Management Libraries

  1. Redux Toolkit - https://redux-toolkit.js.org/
  2. Zustand - https://zustand-demo.pmnd.rs/
  3. Jotai - https://jotai.org/
  4. MobX - https://mobx.js.org/
  5. TanStack Query (React Query) - https://tanstack.com/query
  6. SWR - https://swr.vercel.app/
  7. Recoil (maintenance status) - https://recoiljs.org/

Styling Solutions

  1. Tailwind CSS - https://tailwindcss.com/
  2. Sass/SCSS - https://sass-lang.com/
  3. CSS-in-JS (JSS) - https://cssinjs.org/
  4. React CSS in 2026 Comparison - https://medium.com/@imranmsa93/react-css-in-2026-best-styling-approaches-compared-d5e99a771753
  5. CSS Modules vs Styled Components vs Tailwind - https://medium.com/techtrends-digest/css-modules-vs-styled-components-vs-tailwind-css-which-one-should-you-choose-f2e6c778ea8b
  6. Ultimate Guide to Styling React Components - https://www.telerik.com/blogs/ultimate-guide-styling-react-components

Testing Resources

  1. Jest Documentation - https://jestjs.io/docs/tutorial-react
  2. Testing Library Queries - https://testing-library.com/docs/queries/about/
  3. User Event - https://testing-library.com/docs/user-event/intro
  4. Vitest Documentation - https://vitest.dev/
  5. Vitest Adoption Guide (migration from Jest) - https://blog.logrocket.com/vitest-adoption-guide/
  6. Jest vs Vitest 2026 Benchmarks - https://getautonoma.com/blog/jest-vs-vitest-2026
  7. React Component Testing Best Practices 2025 - https://dev.to/tahamjp/react-component-testing-best-practices-for-2025-2674
  8. Testing in 2026: Jest and React Testing Library - https://www.nucamp.co/blog/testing-in-2026-jest-react-testing-library-and-full-stack-testing-strategies
  9. React Testing Library Guide - https://oneuptime.com/blog/post/2026-02-20-react-testing-library-guide/view

Performance & Optimization

  1. React Compiler: What You Need to Know - https://makersden.io/blog/react-compiler-what-you-need-to-know-about-automatic-memoization
  2. React Performance Optimization Techniques - https://dev.to/paharihacker/react-performance-optimization-techniques-memoization-lazy-loading-and-more-210e
  3. 10 React Performance Optimization Techniques 2026 - https://softaims.com/blog/react-performance-optimization
  4. Code Splitting in React - https://legacy.reactjs.org/docs/code-splitting.html
  5. React Dynamic Imports Guide - https://blog.logrocket.com/react-dynamic-imports-route-centric-code-splitting-guide/
  6. A Practical Guide to Profiling React Applications - https://dev.to/alisamir/a-practical-guide-to-profiling-optimizing-react-applications-for-peak-performance-273i
  7. React Server Components Streaming Performance Guide 2026 - https://www.sitepoint.com/react-server-components-streaming-performance-2026/

TypeScript with React

  1. TypeScript with React Best Practices 2026 - https://medium.com/@mernstackdevbykevin/typescript-with-react-best-practices-2026-78ce4546210b
  2. Generic Components in React TypeScript - https://oneuptime.com/blog/post/2026-01-15-generic-components-react-typescript/view
  3. TypeScript Generics in React Components - https://adjoe.io/company/engineer-blog/typescript-generics-in-react-components/
  4. New Approach to Passing Refs in React 19 + TypeScript - https://medium.com/@ignatovich.dm/the-new-approach-to-passing-refs-in-react-19-typescript-a5762b938b93

Accessibility

  1. React Accessibility Official Docs - https://legacy.reactjs.org/docs/accessibility.html
  2. React Aria (Adobe) - https://react-aria.adobe.com/
  3. Modern Frontend Accessibility Guide 2026 - https://medium.com/design-bootcamp/modern-frontend-accessibility-a-2026-developers-guide-b2de10d01d22
  4. ARIA Best Practices - https://accesstive.com/blog/aria-best-practices-and-examples/
  5. WCAG Guidelines - https://www.w3.org/WAI/WCAG21/Understanding/
  6. WebAIM Skip Navigation - https://webaim.org/techniques/skipnav/

Advanced Topics & React 19 Deep Dives

  1. React 19 Features and Design Patterns - https://coffey.codes/articles/react-19-features-and-design-patterns
  2. The Complete Developer Guide to React 19 (Async Handling) - https://www.callstack.com/blog/the-complete-developer-guide-to-react-19-part-1-async-handling
  3. React 19 Server Components and Actions - https://www.mux.com/blog/react-19-server-components-and-actions
  4. React 19 All New Features 2025 - https://dev.to/vishwark/react-19-the-complete-practical-guide-2025-2l73
  5. React 19 Resilience: Retry, Suspense, Error Boundaries - https://medium.com/@connect.hashblock/react-19-resilience-retry-suspense-error-boundaries-40ea504b09ed
  6. React 19.2 Updates: Activity Component - https://javascript-conference.com/blog/react-19-2-updates-performance-activity-component/
  7. React 20 Conf Recap: Suspense Updates - https://www.sitepoint.com/react-20-suspense-ssr-updates/
  8. React's Latest Evolution: React 19 Deep Dive - https://www.qed42.com/insights/reacts-latest-evolution-a-deep-dive-into-react-19

Hooks Deep Dives

  1. Custom Hooks Guide - https://oneuptime.com/blog/post/2026-02-02-react-custom-hooks/view
  2. useCallback and useMemo Use Cases - https://www.benmvp.com/blog/react-usecallback-usememo-use-cases
  3. React useReducer Deep Dive - https://dev.to/a1guy/react-19-usereducer-deep-dive-from-basics-to-complex-state-patterns-3fpi
  4. React useRef Complete Guide - https://dev.to/a1guy/dont-misuse-useref-in-react-the-practical-guide-you-actually-need-5aj6
  5. Understanding forwardRef and useImperativeHandle - https://medium.com/@am.shreya22/understanding-forward-ref-and-imperative-handle-a-comprehensive-guide-6c472f4704fc

Forms & Validation

  1. React Forms Guide (legacy) - https://legacy.reactjs.org/docs/forms.html
  2. Controlled vs Uncontrolled Components - https://certificates.dev/blog/controlled-vs-uncontrolled-components-in-react
  3. Best React Form Libraries of 2026 - https://blog.croct.com/post/best-react-form-libraries
  4. Using React Hook Form with React 19 and useActionState - https://markus.oberlehner.net/blog/using-react-hook-form-with-react-19-use-action-state-and-next-js-15-app-router

Error Handling & Debugging

  1. Error Boundaries Documentation - https://react.dev/reference/react/Component#catching-rendering-errors-with-an-error-boundary
  2. Error Handling with react-error-boundary - https://certificates.dev/blog/error-handling-in-react-with-react-error-boundary
  3. React Error Boundaries Guide - https://dev.to/blamsa0mine/react-error-boundaries-building-resilient-applications-that-dont-crash-4kc5
  4. How to Debug React Applications - https://empiricaledge.com/blog/how-to-debug-react-applications-like-a-pro/
  5. React Strict Mode Explained 2026 - https://javascript.plainenglish.io/react-strict-mode-explained-for-2026-5fca1c3fa786

Routing

  1. React Router v7 Best Practices - https://lobehub.com/skills/sergiodxa-agent-skills-frontend-react-router-best-practices
  2. Advanced Routing Strategies in React - https://javascript.plainenglish.io/advanced-routing-strategies-in-react-concepts-patterns-and-practical-depth-1d0c5d31974c
  3. TanStack Router Setup in React SaaS Template 2026 - https://dev.to/kiran_ravi_092a2cfcf60389/tanstack-router-setup-in-our-react-saas-template-2026-4b67

Component Patterns

  1. Compound Components Pattern - https://kentcdodds.com/blog/compound-components-with-react-hooks
  2. Container/Presentational Components - https://medium.com/@dan_abramov/smart-and-dumb-components-7ca2f9a7c7d0
  3. Higher-Order Components - https://legacy.reactjs.org/docs/higher-order-components.html
  4. React Children and cloneElement - https://certificates.dev/blog/react-children-and-cloneelement-component-patterns-from-the-docs
  5. React Composition Pattern - https://unwiredlearning.com/blog/react-composition-pattern
  6. React Slot Pattern - https://kentcdodds.com/blog/react-hooks-whats-going-to-happen-to-render-props

State Management Deep Dives

  1. How to Handle State Management in React 2026 - https://oneuptime.com/blog/post/2026-02-02-react-state-management-guide/view
  2. React State Management in 2025 - https://www.developerway.com/posts/react-state-management-2025
  3. Stop Using useState for Everything - https://medium.com/@saad.minhas.codes/stop-using-usestate-for-everything-better-react-state-management-in-2026-1ee41fecdf5d
  4. Zustand vs Redux in 2026 - https://javascript.plainenglish.io/zustand-vs-redux-in-2026-why-i-switched-and-you-should-too-c119dd840ddb
  5. Top 5 React State Management Tools - https://www.syncfusion.com/blogs/post/react-state-management-libraries
  6. State Colocation - https://kentcdodds.com/blog/state-colocation-will-make-your-react-app-faster
  7. Context Performance Optimization - https://kentcdodds.com/blog/how-to-optimize-your-context-value

Video Resources

  1. React 19 Crash Course for Beginners 2026 - https://www.youtube.com/watch?v=tqjJrXd27m4
  2. All React Hooks Tutorial 2025 - https://www.youtube.com/watch?v=4Ak2jFEIr9o
  3. React 19 Hooks: useTransition, useActionState, useFormStatus - https://www.youtube.com/watch?v=iNQbsdhOqGI
  4. React Compiler: Auto Memoization in React Native - https://www.youtube.com/watch?v=28dpqPr4OC0
  5. View Transitions and Activity (React Conf 2025) - https://www.youtube.com/watch?v=G9xD6lHgrMM
  6. React DevTools New Features - https://www.youtube.com/watch?v=uAmRtE52mYk
  7. No More forwardRef in React 19 - https://www.youtube.com/watch?v=Gwy6ZgCfjLo
  8. TanStack Router Complete Tutorial - https://www.youtube.com/watch?v=KcKkwF55Pes

Additional Resources

  1. React Best Practices 2026 - AWS Builder Center - https://builder.aws.com/content/35mjuFWn4hSGCK6JjaZHFIGrzPG/reactjs-best-practices-in-2026
  2. React Key Prop Best Practices - https://emoosavi.com/blog/understanding-react-key-prop
  3. React Synthetic Events Explained - https://www.angularminds.com/blog/react-synthetic-events-for-efficient-event-handling
  4. React Ref Forwarding Guide - https://blog.logrocket.com/use-forwardref-react/
  5. React Context Tutorial - https://blog.logrocket.com/react-context-tutorial/
  6. React Component Performance Optimization - https://oneuptime.com/blog/post/2026-01-24-optimize-react-component-performance/view
  7. React PropTypes Guide (legacy) - https://www.contentful.com/blog/react-proptypes/
  8. Understanding React Reconciliation - https://medium.com/@avnishtomar/reconciliation-in-react-how-react-decides-what-to-update-b3f0983ac116
  9. React 19 Migration Guide - https://www.ksolves.com/blog/reactjs/whats-new-in-react-19
  10. 15 Best React UI Libraries for 2026 - https://www.builder.io/blog/react-component-libraries-2026
  11. Boosting React Performance in 2026 - https://sanjewa.com/blogs/boosting-react-performance-in-2026/
  12. React 19.2 Stability and Performance - https://www.linkedin.com/posts/rathishkumar-konnaiyandi-971a65171_reactjs-webdevelopment-frontend-activity-7396767602678779904-_h97
  13. React 19 Hydration 10 Upgrades - https://medium.com/@bhagyarana80/react-19-hydration-10-upgrades-to-enable-now-de65588669bd
  14. React Optimization Techniques - https://www.freecodecamp.org/news/react-performance-optimization-techniques/
  15. Best React Performance Monitoring Tools - https://embrace.io/blog/best-react-performance-monitoring-tools/

More in Web Development

  • Qwik Framework Cheat Sheet
  • Redux Cheat Sheet
  • AngularJS Cheat Sheet
  • CSS Grid Layout Cheat Sheet
  • Nuxt.js Framework Cheat Sheet
  • SvelteKit Meta-Framework Cheat Sheet
View all 43 topics in Web Development