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 Index
Mind Map
21 tables, 200 concepts. Select a concept node to jump to its table row.
Preparing mind map...
Table 1: Core Hooks
| Hook | Example | Description |
|---|---|---|
const [count, setCount] = useState(0) | • Adds local state to functional components • returns current value and updater function that triggers re-render. | |
useEffect(() => { fetchData()}, [id]) | • Runs side effects after render • empty array runs once on mount, deps trigger on changes, cleanup via return function. | |
const theme = useContext(ThemeContext) | • Consumes Context values without wrapping in Consumer • subscribes to nearest Provider above in tree. | |
const inputRef = useRef(null) | • Creates mutable reference that persists across renders without triggering updates • commonly used for DOM access. | |
const [state, dispatch] = useReducer(reducer, init) | • Alternative to useState for complex state logic • accepts reducer (state, action) => newState following Redux pattern. | |
const value = useMemo(() => compute(a, b), [a, b]) | • Memoizes computed values to avoid expensive recalculations • only recomputes when dependencies change. | |
const handler = useCallback(() => fn(id), [id]) | • Memoizes function identity between renders • prevents child re-renders when passing callbacks as props. | |
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. | |
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. | |
const [optimistic, addOptimistic] = useOptimistic(state, fn) | • Shows optimistic UI update immediately before async action completes • automatically reverts on error. | |
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. | |
const deferredValue = useDeferredValue(searchQuery) | • Returns deferred version of value that lags behind during urgent updates • useful for expensive rendering like filtered lists. | |
useLayoutEffect(() => { measure()}, []) | • Synchronous version of useEffect that fires before browser paint • use for DOM measurements to prevent visual flicker. | |
const id = useId() | • Generates unique stable IDs for accessibility attributes • ensures matching IDs between server and client in SSR. | |
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. | |
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
| Concept | Example | Description |
|---|---|---|
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. | |
<UserCard name="Alice" age={30} /> | • Read-only data passed from parent to child • treated as function arguments enabling component reusability. | |
<Card> <h1>Title</h1></Card> | • Special prop containing nested JSX elements between opening and closing tags • enables composition patterns. | |
function Btn({ type = 'button' }) {} | • Fallback values for props using ES6 default parameters • replaced older Component.defaultProps static property. | |
function User({ name, email }) {} | • Extracts props directly in function parameters • supports nested destructuring and renaming. | |
<Layout> <Sidebar /> <Content /></Layout> | • Building complex UIs from simpler components • preferred over inheritance following "composition over inheritance" principle. | |
const MemoComp = React.memo(Component) | • Component that returns same output for same props • React.memo wraps functional components for shallow prop comparison. | |
<> <td>A</td> <td>B</td></> | • Returns multiple elements without extra DOM nodes • shorthand <> or explicit <React.Fragment> with key support. | |
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
| Pattern | Example | Description |
|---|---|---|
<h1>Hello {user.name}</h1> | • Embeds JavaScript expressions in markup using curly braces • evaluates to React elements at runtime. | |
{isLoggedIn ? <Dashboard /> : <Login />} | • Renders elements based on conditions using ternary operator, &&, or if statements• no special template syntax. | |
{items.map(item => <Item key={item.id} {...item} />)} | • Transforms arrays into element lists using map()• requires unique key prop for reconciliation optimization. | |
<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. | |
<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>. | |
<div style={{ color: 'red', fontSize: 16 }} /> | • Applies styles as JavaScript object with camelCased properties • numeric values auto-append px for lengths. | |
<div className="btn btn-primary" /> | Sets CSS classes using className (not class) to avoid JavaScript keyword conflict. | |
<div dangerouslySetInnerHTML={{ __html: markup }} /> | • Injects raw HTML directly • named to highlight XSS risk — always sanitize untrusted content before use. | |
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
| Technique | Example | Description |
|---|---|---|
const [name, setName] = useState('') | • State scoped to single component using useState• re-renders component when updated. | |
setCount(prev => prev + 1) | • Passes function to setter instead of value • ensures update uses most recent state — critical in async contexts. | |
<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. | |
const Ctx = createContext()<Ctx value={data}> | • Shares data across component tree without prop drilling • Provider supplies value, consumers subscribe via useContext. | |
const reducer = (state, action) => { switch(action.type) {...}} | • Centralizes complex state logic in pure reducer function • action objects describe state changes declaratively. | |
setName('Alice')setAge(30) | React 18+ groups multiple state updates into a single re-render automatically — even in promises and timeouts. | |
const fullName = firstName + ' ' + lastName | • Values computed from props/state during render • avoid storing in separate state to prevent synchronization bugs. | |
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. | |
<input defaultValue="hi" ref={inputRef} /> | • Form element that manages own state via DOM • access value through refs instead of state. | |
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
| Pattern | Example | Description |
|---|---|---|
useEffect(() => { const id = setInterval(tick, 1000) return () => clearInterval(id)}, []) | • Effect returning cleanup function runs before unmount or before next effect • prevents memory leaks. | |
useEffect(() => fetch(url), [url]) | Controls when effect runs — empty array runs once on mount, omitted runs every render, with deps runs on changes. | |
function useWindowSize() { const [size, setSize] = useState(...) useEffect(() => {...}, []) return size} | • Extracts reusable stateful logic into function prefixed with "use" • can call other hooks internally. | |
useEffect(() => { socket.connect() return () => socket.disconnect()}, [roomId]) | • Keeps component synchronized with external system • connection logic mirrors component lifecycle. | |
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. | |
useEffect(() => { window.addEventListener('resize', handle) return () => window.removeEventListener('resize', handle)}, []) | • Attaching global event handlers outside React's event system • cleanup prevents duplicate listeners. | |
useEffect(() => { const id = setTimeout(() => setShow(true), 1000) return () => clearTimeout(id)}, []) | • Running timed operations • cleanup cancels pending timers to avoid state updates on unmounted components. | |
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
| Technique | Example | Description |
|---|---|---|
// 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. | |
const List = React.memo(function List({ items }) {...}) | • Prevents re-renders if props haven't changed using shallow comparison • second argument allows custom comparison. | |
const sorted = useMemo(() => items.sort(), [items]) | • Caches expensive computations between renders • React Compiler handles this automatically when enabled. | |
const onClick = useCallback(() => fn(id), [id]) | • Memoizes function reference to prevent unnecessary child re-renders • React Compiler handles this automatically when enabled. | |
const Comp = React.lazy(() => import('./Comp')) | • Splits bundle into smaller chunks loaded on demand • React.lazy with dynamic import() creates split points. | |
<Suspense fallback={<Spinner />}> <LazyComp /></Suspense> | • Shows fallback UI while lazy component or async data loads • works with React.lazy and data fetching libraries. | |
<FixedSizeList height={400} itemCount={1000} itemSize={35}> | • Renders only visible list items using libraries like react-window• dramatically improves performance for long lists. | |
startTransition(() => setQuery(input)) | • Marks updates as low priority • keeps UI responsive during expensive re-renders by allowing React to interrupt work. | |
const deferred = useDeferredValue(searchTerm) | • Creates laggy version of value that updates after urgent renders • alternative to debouncing for responsive UIs. | |
items.map(item => <Item key={item.id} />) | • Using stable unique keys helps React identify which items changed • avoids unnecessary DOM mutations. | |
npm run build | • Creates optimized bundle with minification and dead code elimination • significantly faster than development build. |
Table 7: Component Patterns
| Pattern | Example | Description |
|---|---|---|
<Tabs> <Tabs.List> <Tabs.Tab /> </Tabs.List></Tabs> | • Components that work together sharing implicit state • creates cohesive API like native HTML <select> and <option>. | |
<ThemeProvider> <App /></ThemeProvider> | • Wraps tree with Context Provider to share values • avoids prop drilling for global concerns like theme or auth. | |
<DataProvider render={data => <Display data={data} />} /> | • Passes function as prop that component calls to determine render output • largely superseded by custom hooks. | |
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. | |
<Card> {children}</Card> | • Building components by combining smaller ones • uses children prop to accept nested content flexibly. | |
<Layout header={<Header />} sidebar={<Sidebar />} /> | • Passes multiple JSX elements as named props • more explicit than children for complex layouts. | |
// Container: fetches data// Presentational: renders UI | • Separates logic from presentation • containers handle state/effects, presentational components are pure functions. | |
// Controlled: value={state}// Uncontrolled: ref={inputRef} | • Controlled components use React state as source of truth • uncontrolled rely on DOM state accessed via refs. | |
<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
| Concept | Example | Description |
|---|---|---|
<button onClick={handleClick}>Click</button> | • Function passed to event prop • convention names handlers handleEvent or onEvent. | |
function handle(e) { e.preventDefault() console.log(e.target.value)} | • SyntheticEvent instance with target, currentTarget• methods preventDefault(), stopPropagation(). | |
onClick={e => console.log(e.type)} | • React's cross-browser wrapper around native events • normalized API works consistently across all browsers. | |
onClick={() => deleteRow(id)} | • Binding additional parameters to handlers using arrow function or bind• arrow function is more common. | |
const handleClick = () => {...}<button onClick={handleClick}> | • Declaring function separately then passing reference • better for reusability and testing than inline. | |
<button onClick={() => alert('clicked')}> | • Defining function directly in JSX • convenient for simple logic but creates new function each render. | |
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. | |
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
| Technique | Example | Description |
|---|---|---|
<input value={name} onChange={e => setName(e.target.value)} /> | • Input value controlled by state • onChange handler updates state creating bidirectional binding. | |
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 onSubmit={e => { e.preventDefault() submit(data)}}> | Intercepting submit event to prevent default page reload and handle data programmatically. | |
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. | |
<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 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 value={text} onChange={e => setText(e.target.value)} /> | • Uses value prop like inputs (not children)• controlled the same way for consistency. | |
<input type="file" ref={fileRef} /> | • Always uncontrolled because value is read-only • access files via fileRef.current.files. | |
const { register, handleSubmit } = useForm() | Libraries like React Hook Form or Formik reduce boilerplate for validation, submission, and field management. | |
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
| Method | Example | Description |
|---|---|---|
const inputRef = useRef(null)<input ref={inputRef} /> | • Creates mutable reference to DOM element or value • current persists without causing re-renders. | |
inputRef.current.focus() | • Directly calling DOM methods via ref • escape hatch for imperative operations React doesn't provide. | |
function Input({ ref }) { return <input ref={ref} />} | • React 19: ref is a regular prop in function components • no forwardRef wrapper needed — simpler and cleaner. | |
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. | |
<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. | |
<div ref={node => setNode(node)} /> | • Ref as function called with DOM node on mount and null on unmount• useful for measuring or observing nodes. | |
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(ref, () => ({ focus: () => inputRef.current.focus()})) | • Customizes instance value exposed to parent via ref • controls what methods/properties are public. | |
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
| Pattern | Example | Description |
|---|---|---|
const ThemeContext = createContext('light') | • Creates Context object with default value • default used when no Provider exists above in tree. | |
<ThemeContext value="dark"> <App /></ThemeContext> | React 19: use context directly as a Provider — <ThemeContext value="..."> replaces legacy <ThemeContext.Provider value="...">. | |
const theme = useContext(ThemeContext) | • Reads context value from nearest Provider above • replaces older Context.Consumer pattern. | |
const [state, dispatch] = useReducer(reducer, init)<Ctx value={{state, dispatch}}> | • Combining Context + useReducer for global state management • lightweight alternative to Redux for simpler apps. | |
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. | |
<ThemeProvider> <UserProvider> <App /> </UserProvider></ThemeProvider> | • Nesting multiple Providers for different concerns • component can consume multiple contexts with separate useContext calls. | |
const value = useMemo(() => ({state, dispatch}), [state]) | • Memoizing context value prevents unnecessary consumer re-renders • split contexts to limit update scope. |
Table 12: Error Handling
| Technique | Example | Description |
|---|---|---|
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. | |
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(error, errorInfo) { logError(error, errorInfo.componentStack)} | • Lifecycle for side effects after error is caught • log errors to reporting service while displaying fallback. | |
<ErrorBoundary FallbackComponent={ErrorFallback}> <App /></ErrorBoundary> | react-error-boundary provides hooks-based error handling (useErrorBoundary), reset, and retry capabilities. | |
<Suspense fallback={<Loading />}> <AsyncComp /></Suspense> | • Shows fallback while async components or data loads • catches thrown promises from React.lazy or data fetching. | |
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)
| Component | Example | Description |
|---|---|---|
<BrowserRouter> <App /></BrowserRouter> | • Uses HTML5 history API for clean URLs • wraps app to enable routing without hash. | |
<Routes> <Route path="/" element={<Home />} /></Routes> | • Container for route definitions replacing older <Switch>• matches first route that fits. | |
<Route path="/users/:id" element={<User />} /> | • Defines path-to-component mapping • dynamic segments start with : for parameters. | |
<Link to="/about">About</Link> | • Creates navigation links without full page reload • renders anchor tag with click handler. | |
<NavLink to="/home" className={({isActive}) => isActive ? 'active' : ''} /> | • Like Link but adds active styling when current route matches • useful for navigation menus. | |
const navigate = useNavigate()navigate('/dashboard') | • Hook for programmatic navigation • replaces older useHistory with simpler API. | |
const { id } = useParams() | • Extracts URL parameters from current route • returns object with param names as keys. | |
const location = useLocation() | • Returns current location object with pathname, search, hash, state• useful for tracking page views. | |
<Route path="/users" element={<Users />}> <Route path=":id" element={<User />} /></Route> | • Defines child routes under parent • relative paths combine with parent path. | |
function Layout() { return <div><Nav /><Outlet /></div>} | • Renders matched child route in parent component • enables nested layouts. | |
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
| Tool | Example | Description |
|---|---|---|
render(<Button />)screen.getByRole('button') | • Encourages testing user behavior not implementation • queries based on accessibility attributes. | |
await user.click(button) | • More realistic user interaction simulation than fireEvent • handles focus, timing, and keyboard events properly. | |
screen.getByText('Submit') | Built-in query methods like getBy, queryBy, findBy with variants for text, role, label, test ID, etc. | |
await waitFor(() => expect(screen.getByText('Loaded')).toBeInTheDocument()) | • Waits for async changes like state updates or API responses • retries until callback stops throwing. | |
const { container } = render(<App />) | • Renders component into virtual DOM for testing • returns queries and container element. | |
fireEvent.click(button) | • Triggers DOM events on elements • synchronous simulation — prefer userEvent for realistic interaction. | |
test('renders title', () => {...}) | • Test runner and assertion library • provides describe, test, expect, and mocking capabilities. | |
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. | |
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. | |
expect(tree).toMatchSnapshot() | • Captures component output and detects unexpected changes • useful for catching regressions in UI structure. |
Table 15: TypeScript Integration
| Pattern | Example | Description |
|---|---|---|
interface Props { name: string; age: number }function User(props: Props) {} | • Separate type definition for props • enables reuse and clearer documentation. | |
function Button({ text }: { text: string }) {} | • Inline props type for simple components • clear and concise for few props. | |
const [user, setUser] = useState<User | null>(null) | • Explicitly typing state generic when TypeScript can't infer • necessary for complex types or null initialization. | |
const handle = (e: React.ChangeEvent<HTMLInputElement>) => {} | • Typing event handlers with specific event types • ensures type safety for e.target properties. | |
const ref = useRef<HTMLDivElement>(null) | • Providing element type for ref • null initial value requires union type for .current. | |
interface Props { children: React.ReactNode } | • Using ReactNode type for children prop • accepts any valid React child (elements, strings, numbers, fragments). | |
function List<T>(props: { items: T[]; render: (item: T) => ReactNode }) {} | • Components accepting generic type parameters • enables type-safe reusable components. | |
const Ctx = createContext<ContextType | undefined>(undefined) | • Typing Context value and initial value • undefined forces Provider usage with runtime check. | |
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
| Feature | Example | Description |
|---|---|---|
createRoot(el).render(<App />) | • React 18+ feature enabling interruptible rendering • allows React to pause, abort, and prioritize urgent updates. | |
setName('Alice')setAge(30) | React 18+ groups multiple state updates into a single re-render — even in promises and timeouts. | |
// 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. | |
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'import { useState } from 'react' | • Marks a module boundary for client-side code in RSC • components below this point ship JS to the browser. | |
'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 mode="hidden"> <ExpensivePanel /></Activity> | • React 19.2: hides or shows UI without unmounting • preserves state and subscriptions • mode is "visible" or "hidden". | |
<ViewTransition> {url === '/' ? <Home /> : <Details />}</ViewTransition> | Experimental: wraps elements to enable browser-native View Transition API animations on startTransition, useDeferredValue, or Suspense changes. | |
renderToPipeableStream(<App />) | • Server-side rendering that streams HTML to client progressively • faster time-to-first-byte using Suspense boundaries. | |
startTransition(async () => { await submitData(form)}) | • Marks updates as non-urgent transitions • React 19 supports async functions, keeping UI responsive without blocking. | |
<StrictMode> <App /></StrictMode> | • Development-only tool that highlights potential problems • intentionally double-invokes functions to surface side effects. | |
<Profiler id="Nav" onRender={callback}> <Nav /></Profiler> | • Measures rendering performance programmatically • callback receives timing info for production monitoring. | |
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
| Method | Example | Description |
|---|---|---|
<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. | |
import styles from './Button.module.css'<div className={styles.button} /> | • Locally scoped CSS by default • build tool transforms class names to prevent global conflicts. | |
const Button = styled.button\color: blue;`` | • CSS-in-JS library using tagged templates • styles scoped to component with dynamic theming support. | |
<div css={css\color: red;`} />` | • CSS-in-JS with both string and object styles • strong performance and widely used in design systems. | |
import './styles.scss' | • CSS preprocessor with variables, nesting, mixins • requires build configuration but uses familiar syntax. | |
<div style={{ backgroundColor: 'blue', padding: 20 }} /> | • JavaScript object with camelCased properties • limited pseudo-selectors and media queries, dynamic by default. | |
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
| Tool | Example | Description |
|---|---|---|
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. | |
Navigate component hierarchy; view props, state, hooks, owners, source code location. | • Explores React component structure in DevTools • search and filter components. | |
Records rendering performance; flame graph shows which components render and why. | • Identifies performance bottlenecks • measures commit phases and component render time. | |
console.log('State:', state) | • Basic debugging by printing values • effective for understanding data flow and spotting unexpected updates. | |
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. | |
devtool: 'source-map' in config | • Maps compiled code to source • enables debugging original TypeScript/JSX in browser despite minification. | |
Catch and log render errors; prevent entire app crash with fallback UI. | Provides graceful error handling in component tree. | |
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
| Tool | Example | Description |
|---|---|---|
npm create vite my-app -- --template react | • Fast dev server using native ES modules • dramatically faster HMR and builds than webpack-based tools • recommended for new projects. | |
npx create-next-app | • Production framework with SSR, SSG, routing, API routes, and React Server Components built-in • most popular production React framework. | |
npx create-tsrouter-app my-app | • Full-stack framework built on TanStack Router • type-safe routing, server functions, and SSR • rapidly growing alternative to Next.js. | |
npx create-remix | • Framework focused on web fundamentals • nested routing, progressive enhancement, optimistic UI • merged with React Router v7. | |
npx react-native init MyApp | • Build native mobile apps using React • shared codebase for iOS and Android with platform-specific code. | |
npm init gatsby | • Static site generator with GraphQL data layer • excellent for content-heavy sites and blogs. | |
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. | |
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. | |
/preset-react | • Transpiles JSX and modern JS to compatible JavaScript • also hosts the React Compiler plugin. | |
eslint-plugin-react, eslint-plugin-react-hooks | • Linting tool for code quality • React-specific plugins enforce best practices and hooks rules. | |
npm create vite my-app -- --template react-ts | • Adds static typing to JavaScript • catches errors at compile time, improves IDE support • recommended for all new projects. | |
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
| Library | Example | Description |
|---|---|---|
const store = configureStore({ reducer })useSelector(state => state.user) | • Modern Redux with less boilerplate • includes createSlice, createAsyncThunk, opinionated defaults• best for large teams. | |
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. | |
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. | |
const { data } = useSWR('/api/user', fetcher) | • Data fetching hook with caching • "stale-while-revalidate" strategy • lightweight Vercel-maintained alternative to TanStack Query. | |
const [count, setCount] = useAtom(countAtom) | • Primitive and flexible atom-based state • bottom-up approach, no string keys, TypeScript-first. | |
const store = observable({ count: 0 })const Counter = observer(() => <div>{store.count}</div>) | • Reactive state management using observables • automatic dependency tracking, minimal boilerplate. | |
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
| Practice | Example | Description |
|---|---|---|
<button>Click</button> not <div onClick>Click</div> | • Use correct HTML elements for functionality • provides built-in keyboard support and screen reader context. | |
<label htmlFor="email">Email</label><input id="email" /> | • Associate labels with inputs using htmlFor• enables clicking label to focus input • required for screen readers. | |
useEffect(() => inputRef.current.focus(), []) | • Programmatically move focus to appropriate elements • essential for modals, route changes, dynamic content. | |
<div role="button" aria-label="Close" /> | • Add accessibility semantics when semantic HTML is insufficient • use sparingly — prefer native elements. | |
<button aria-label="Close dialog">×</button> | Provides text alternative for screen readers when visible text is insufficient or absent. | |
<div aria-live="polite" aria-atomic="true">{status}</div> | • Announce dynamic content changes to screen readers • polite waits for pause, assertive interrupts. | |
onKeyDown={e => e.key === 'Enter' && handleClick()} | • Ensure all interactive elements are accessible via keyboard • implement arrow keys for custom widgets. | |
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. | |
<a href="#main" className="skip-link">Skip to main</a> | • Bypass navigation links at page top • allows keyboard users to jump directly to content. | |
<img src="logo.png" alt="Company logo" /> | • Describe image content for screen readers • use empty alt="" for purely decorative images. | |
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. |
References
Official Documentation
- React Official Documentation - https://react.dev/
- React v19 Release Blog - https://react.dev/blog/2024/12/05/react-19
- React Labs: View Transitions, Activity, and more (April 2025) - https://react.dev/blog/2025/04/23/react-labs-view-transitions-activity-and-more
- React Compiler v1.0 Release (October 2025) - https://react.dev/blog/2025/10/07/react-compiler-1
- React Hooks Reference - https://react.dev/reference/react/hooks
- React API Reference - https://react.dev/reference/react
- useActionState - https://react.dev/reference/react/useActionState
- useFormStatus - https://react.dev/reference/react-dom/hooks/useFormStatus
- useOptimistic - https://react.dev/reference/react/useOptimistic
- useTransition - https://react.dev/reference/react/useTransition
- useDeferredValue - https://react.dev/reference/react/useDeferredValue
- useEffectEvent (experimental) - https://react.dev/reference/react/experimental_useEffectEvent
- use hook - https://react.dev/reference/react/use
- Activity component - https://react.dev/reference/react/Activity
- ViewTransition component - https://react.dev/reference/react/ViewTransition
- React Compiler Documentation - https://react.dev/learn/react-compiler
- Server Components - https://react.dev/reference/rsc/server-components
- 'use client' directive - https://react.dev/reference/rsc/use-client
- 'use server' directive - https://react.dev/reference/rsc/use-server
- forwardRef (deprecated in React 19) - https://react.dev/reference/react/forwardRef
- Ref as a prop (React 19) - https://react.dev/blog/2024/12/05/react-19#ref-as-a-prop
- Ref cleanup functions (React 19) - https://react.dev/blog/2024/12/05/react-19#cleanup-functions-for-refs
- Context Provider shorthand (React 19) - https://react.dev/reference/react/createContext
- Document Metadata title - https://react.dev/reference/react-dom/components/title
- Document Metadata meta - https://react.dev/reference/react-dom/components/meta
- React Developer Tools - https://react.dev/learn/react-developer-tools
- React Testing Library Documentation - https://testing-library.com/docs/react-testing-library/intro/
- React TypeScript Cheatsheet - https://react-typescript-cheatsheet.netlify.app/
- Legacy React Documentation - https://legacy.reactjs.org/docs/getting-started.html
- React Native Documentation - https://reactnative.dev/
- React 19 Upgrade Guide - https://react.dev/blog/2024/04/25/react-19-upgrade-guide
Technical Blogs & Tutorials
- React 19 New Hooks Guide (useActionState, useFormStatus, useOptimistic) - https://www.manuelsanchezdev.com/blog/react-19-new-hooks-useoptimistic-useformstatus-useactionstate
- useActionState Practical Guide - https://blog.logrocket.com/react-useactionstate/
- React 19 useActionState Forms Guide - https://ishu.dev/post/react-19-useactionstate-forms-guide-2026-04-04
- 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
- React Compiler Migration Guide 2026 - https://www.live-laugh-love.world/blog/react-compiler-migration-guide-2026/
- Why React 19 Compiler Changes Everything - https://www.sitepoint.com/why-react-19-s-compiler-changes-everything-for-senior-devs/
- Understanding React's useEffectEvent - https://peterkellner.net/2026/01/09/understanding-react-useeffectevent-vs-useeffect/
- React useEffectEvent Solves Stale Closures - https://blog.logrocket.com/react-has-finally-solved-its-biggest-problem-useeffectevent/
- React 19 Ref as Prop and Cleanup - https://blog.saeloun.com/2025/03/24/react-19-ref-as-prop/
- React 19 forwardRef Deprecation Guide - https://mudafar.medium.com/goodbye-forwardref-react-19-finally-fixes-the-ref-confusion-3412ae44291f
- React 19 Server Components Deep Dive - https://therobin.dev/blog/react-server-components-deep-dive-2026
- React Server Components Mental Model 2026 - https://medium.com/@mernstackdevbykevin/the-definitive-handbook-for-full-stack-developers-on-react-server-components-in-2026-c7ea9180e12e
- React Server Components Production Best Practices - https://www.growin.com/blog/react-server-components/
- React ViewTransition Complete Guide - https://dev.to/caisere/the-complete-guide-to-react-viewtransition-just-released-4k0n
- React Activity Component Overview - https://certificates.dev/blog/react-viewtransition-smooth-animations-made-simple
- React 19 Document Metadata Feature - https://blog.logrocket.com/guide-react-19-new-document-metadata-feature/
- React 19 Resource Preloading APIs - https://medium.com/@ogundipe.eniola/react-19-updates-resource-preloading-hydration-error-reporting-and-custom-elements-8486ba180137
- React 19 Web Components Support - https://sordyl.dev/blog/react-19-support-for-web-components/
- 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
- Modern React Data Fetching Handbook - https://www.freecodecamp.org/news/the-modern-react-data-fetching-handbook-suspense-use-and-errorboundary-explained/
- React Performance Optimization Guide - https://blog.logrocket.com/a-complete-guide-to-react-performance-optimization/
- State Management in 2026: Redux vs Zustand vs Context - https://medium.com/@abdurrehman1/state-management-in-2026-redux-vs-zustand-vs-context-api-ad5760bfab0b
- React Concurrent Features Overview - https://certificates.dev/blog/react-concurrent-features-an-overview
- React Design Patterns Guide - https://www.sayonetech.com/blog/react-design-patterns/
- Building Reusable React Components in 2026 - https://medium.com/@romko.kozak/building-reusable-react-components-in-2026-a461d30f8ce4
- Virtual DOM, Reconciliation, and React Fiber Architecture - https://medium.com/@muskanbatra0024/virtual-dom-reconciliation-and-react-fiber-architecture-415fb3c72f8d
- React Context API Best Practices 2026 - https://medium.com/@ayush22005kumar/react-context-api-explained-purpose-usage-examples-and-best-practices-2026-guide-b7b4f93926f9
- Understanding useEffect vs useLayoutEffect - https://kentcdodds.com/blog/useeffect-vs-uselayouteffect
- How to use React Context effectively - https://kentcdodds.com/blog/how-to-use-react-context-effectively
- React Hooks Cheat Sheet - https://blog.logrocket.com/react-hooks-cheat-sheet-solutions-common-problems/
- Understanding React's useTransition - https://www.nutrient.io/blog/react-usetransition-guide/
- React Event Handling Guide - https://www.greatfrontend.com/react-interview-playbook/react-event-handling
- React Accessibility Best Practices Guide - https://www.allaccessible.org/blog/react-accessibility-best-practices-guide
- 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
- React 19 Actions: Simplify Form Submission - https://www.freecodecamp.org/news/react-19-actions-simpliy-form-submission-and-loading-states/
- React 19 Actions Changed How We Build Forms - https://www.amillionmonkeys.co.uk/blog/react-19-actions-form-handling
- Smooth Async Transitions in React 19 - https://blog.appsignal.com/2025/08/27/smooth-async-transitions-in-react-19.html
GitHub Repositories & Code Examples
- React Fiber Architecture - https://github.com/acdlite/react-fiber-architecture
- React Error Boundary Library - https://github.com/bvaughn/react-error-boundary
- React Hook Form - https://react-hook-form.com/
- React Window (Virtualization) - https://react-window.now.sh/
- Styled Components - https://styled-components.com/
- Emotion CSS-in-JS - https://emotion.sh/docs/introduction
- CSS Modules - https://github.com/css-modules/css-modules
- Prop-types (legacy) - https://github.com/facebook/prop-types
- React Compiler Playground - https://playground.react.dev/
- 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
- Next.js Documentation - https://nextjs.org/
- Vite Documentation - https://vitejs.dev/
- TanStack Start Documentation - https://tanstack.com/start/latest
- TanStack Router Documentation - https://tanstack.com/router/latest
- Remix Framework - https://remix.run/
- Gatsby Documentation - https://www.gatsbyjs.com/
- React Router Documentation - https://reactrouter.com/
- Webpack Documentation - https://webpack.js.org/
- Turbopack Documentation - https://turbo.build/pack
- Babel Documentation - https://babeljs.io/
- TypeScript Documentation - https://www.typescriptlang.org/
- Create React App (legacy, unmaintained) - https://create-react-app.dev/
TanStack Router Resources
- TanStack Router vs React Router Comparison 2026 - https://www.scaled2c.com/tanstack-router-vs-react-router-v7-comparison-2026
- TanStack Router Type Safety - https://tanstack.com/router/latest/docs/guide/type-safety
- Modern React Navigation with TanStack Router - https://javascript.plainenglish.io/modern-react-navigation-with-tanstack-router-2025-guide-c6b1a822ecd7
- 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
- Redux Toolkit - https://redux-toolkit.js.org/
- Zustand - https://zustand-demo.pmnd.rs/
- Jotai - https://jotai.org/
- MobX - https://mobx.js.org/
- TanStack Query (React Query) - https://tanstack.com/query
- SWR - https://swr.vercel.app/
- Recoil (maintenance status) - https://recoiljs.org/
Styling Solutions
- Tailwind CSS - https://tailwindcss.com/
- Sass/SCSS - https://sass-lang.com/
- CSS-in-JS (JSS) - https://cssinjs.org/
- React CSS in 2026 Comparison - https://medium.com/@imranmsa93/react-css-in-2026-best-styling-approaches-compared-d5e99a771753
- 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
- Ultimate Guide to Styling React Components - https://www.telerik.com/blogs/ultimate-guide-styling-react-components
Testing Resources
- Jest Documentation - https://jestjs.io/docs/tutorial-react
- Testing Library Queries - https://testing-library.com/docs/queries/about/
- User Event - https://testing-library.com/docs/user-event/intro
- Vitest Documentation - https://vitest.dev/
- Vitest Adoption Guide (migration from Jest) - https://blog.logrocket.com/vitest-adoption-guide/
- Jest vs Vitest 2026 Benchmarks - https://getautonoma.com/blog/jest-vs-vitest-2026
- React Component Testing Best Practices 2025 - https://dev.to/tahamjp/react-component-testing-best-practices-for-2025-2674
- 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
- React Testing Library Guide - https://oneuptime.com/blog/post/2026-02-20-react-testing-library-guide/view
Performance & Optimization
- React Compiler: What You Need to Know - https://makersden.io/blog/react-compiler-what-you-need-to-know-about-automatic-memoization
- React Performance Optimization Techniques - https://dev.to/paharihacker/react-performance-optimization-techniques-memoization-lazy-loading-and-more-210e
- 10 React Performance Optimization Techniques 2026 - https://softaims.com/blog/react-performance-optimization
- Code Splitting in React - https://legacy.reactjs.org/docs/code-splitting.html
- React Dynamic Imports Guide - https://blog.logrocket.com/react-dynamic-imports-route-centric-code-splitting-guide/
- A Practical Guide to Profiling React Applications - https://dev.to/alisamir/a-practical-guide-to-profiling-optimizing-react-applications-for-peak-performance-273i
- React Server Components Streaming Performance Guide 2026 - https://www.sitepoint.com/react-server-components-streaming-performance-2026/
TypeScript with React
- TypeScript with React Best Practices 2026 - https://medium.com/@mernstackdevbykevin/typescript-with-react-best-practices-2026-78ce4546210b
- Generic Components in React TypeScript - https://oneuptime.com/blog/post/2026-01-15-generic-components-react-typescript/view
- TypeScript Generics in React Components - https://adjoe.io/company/engineer-blog/typescript-generics-in-react-components/
- 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
- React Accessibility Official Docs - https://legacy.reactjs.org/docs/accessibility.html
- React Aria (Adobe) - https://react-aria.adobe.com/
- Modern Frontend Accessibility Guide 2026 - https://medium.com/design-bootcamp/modern-frontend-accessibility-a-2026-developers-guide-b2de10d01d22
- ARIA Best Practices - https://accesstive.com/blog/aria-best-practices-and-examples/
- WCAG Guidelines - https://www.w3.org/WAI/WCAG21/Understanding/
- WebAIM Skip Navigation - https://webaim.org/techniques/skipnav/
Advanced Topics & React 19 Deep Dives
- React 19 Features and Design Patterns - https://coffey.codes/articles/react-19-features-and-design-patterns
- 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
- React 19 Server Components and Actions - https://www.mux.com/blog/react-19-server-components-and-actions
- React 19 All New Features 2025 - https://dev.to/vishwark/react-19-the-complete-practical-guide-2025-2l73
- React 19 Resilience: Retry, Suspense, Error Boundaries - https://medium.com/@connect.hashblock/react-19-resilience-retry-suspense-error-boundaries-40ea504b09ed
- React 19.2 Updates: Activity Component - https://javascript-conference.com/blog/react-19-2-updates-performance-activity-component/
- React 20 Conf Recap: Suspense Updates - https://www.sitepoint.com/react-20-suspense-ssr-updates/
- 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
- Custom Hooks Guide - https://oneuptime.com/blog/post/2026-02-02-react-custom-hooks/view
- useCallback and useMemo Use Cases - https://www.benmvp.com/blog/react-usecallback-usememo-use-cases
- React useReducer Deep Dive - https://dev.to/a1guy/react-19-usereducer-deep-dive-from-basics-to-complex-state-patterns-3fpi
- React useRef Complete Guide - https://dev.to/a1guy/dont-misuse-useref-in-react-the-practical-guide-you-actually-need-5aj6
- Understanding forwardRef and useImperativeHandle - https://medium.com/@am.shreya22/understanding-forward-ref-and-imperative-handle-a-comprehensive-guide-6c472f4704fc
Forms & Validation
- React Forms Guide (legacy) - https://legacy.reactjs.org/docs/forms.html
- Controlled vs Uncontrolled Components - https://certificates.dev/blog/controlled-vs-uncontrolled-components-in-react
- Best React Form Libraries of 2026 - https://blog.croct.com/post/best-react-form-libraries
- 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
- Error Boundaries Documentation - https://react.dev/reference/react/Component#catching-rendering-errors-with-an-error-boundary
- Error Handling with react-error-boundary - https://certificates.dev/blog/error-handling-in-react-with-react-error-boundary
- React Error Boundaries Guide - https://dev.to/blamsa0mine/react-error-boundaries-building-resilient-applications-that-dont-crash-4kc5
- How to Debug React Applications - https://empiricaledge.com/blog/how-to-debug-react-applications-like-a-pro/
- React Strict Mode Explained 2026 - https://javascript.plainenglish.io/react-strict-mode-explained-for-2026-5fca1c3fa786
Routing
- React Router v7 Best Practices - https://lobehub.com/skills/sergiodxa-agent-skills-frontend-react-router-best-practices
- Advanced Routing Strategies in React - https://javascript.plainenglish.io/advanced-routing-strategies-in-react-concepts-patterns-and-practical-depth-1d0c5d31974c
- 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
- Compound Components Pattern - https://kentcdodds.com/blog/compound-components-with-react-hooks
- Container/Presentational Components - https://medium.com/@dan_abramov/smart-and-dumb-components-7ca2f9a7c7d0
- Higher-Order Components - https://legacy.reactjs.org/docs/higher-order-components.html
- React Children and cloneElement - https://certificates.dev/blog/react-children-and-cloneelement-component-patterns-from-the-docs
- React Composition Pattern - https://unwiredlearning.com/blog/react-composition-pattern
- React Slot Pattern - https://kentcdodds.com/blog/react-hooks-whats-going-to-happen-to-render-props
State Management Deep Dives
- How to Handle State Management in React 2026 - https://oneuptime.com/blog/post/2026-02-02-react-state-management-guide/view
- React State Management in 2025 - https://www.developerway.com/posts/react-state-management-2025
- Stop Using useState for Everything - https://medium.com/@saad.minhas.codes/stop-using-usestate-for-everything-better-react-state-management-in-2026-1ee41fecdf5d
- Zustand vs Redux in 2026 - https://javascript.plainenglish.io/zustand-vs-redux-in-2026-why-i-switched-and-you-should-too-c119dd840ddb
- Top 5 React State Management Tools - https://www.syncfusion.com/blogs/post/react-state-management-libraries
- State Colocation - https://kentcdodds.com/blog/state-colocation-will-make-your-react-app-faster
- Context Performance Optimization - https://kentcdodds.com/blog/how-to-optimize-your-context-value
Video Resources
- React 19 Crash Course for Beginners 2026 - https://www.youtube.com/watch?v=tqjJrXd27m4
- All React Hooks Tutorial 2025 - https://www.youtube.com/watch?v=4Ak2jFEIr9o
- React 19 Hooks: useTransition, useActionState, useFormStatus - https://www.youtube.com/watch?v=iNQbsdhOqGI
- React Compiler: Auto Memoization in React Native - https://www.youtube.com/watch?v=28dpqPr4OC0
- View Transitions and Activity (React Conf 2025) - https://www.youtube.com/watch?v=G9xD6lHgrMM
- React DevTools New Features - https://www.youtube.com/watch?v=uAmRtE52mYk
- No More forwardRef in React 19 - https://www.youtube.com/watch?v=Gwy6ZgCfjLo
- TanStack Router Complete Tutorial - https://www.youtube.com/watch?v=KcKkwF55Pes
Additional Resources
- React Best Practices 2026 - AWS Builder Center - https://builder.aws.com/content/35mjuFWn4hSGCK6JjaZHFIGrzPG/reactjs-best-practices-in-2026
- React Key Prop Best Practices - https://emoosavi.com/blog/understanding-react-key-prop
- React Synthetic Events Explained - https://www.angularminds.com/blog/react-synthetic-events-for-efficient-event-handling
- React Ref Forwarding Guide - https://blog.logrocket.com/use-forwardref-react/
- React Context Tutorial - https://blog.logrocket.com/react-context-tutorial/
- React Component Performance Optimization - https://oneuptime.com/blog/post/2026-01-24-optimize-react-component-performance/view
- React PropTypes Guide (legacy) - https://www.contentful.com/blog/react-proptypes/
- Understanding React Reconciliation - https://medium.com/@avnishtomar/reconciliation-in-react-how-react-decides-what-to-update-b3f0983ac116
- React 19 Migration Guide - https://www.ksolves.com/blog/reactjs/whats-new-in-react-19
- 15 Best React UI Libraries for 2026 - https://www.builder.io/blog/react-component-libraries-2026
- Boosting React Performance in 2026 - https://sanjewa.com/blogs/boosting-react-performance-in-2026/
- React 19.2 Stability and Performance - https://www.linkedin.com/posts/rathishkumar-konnaiyandi-971a65171_reactjs-webdevelopment-frontend-activity-7396767602678779904-_h97
- React 19 Hydration 10 Upgrades - https://medium.com/@bhagyarana80/react-19-hydration-10-upgrades-to-enable-now-de65588669bd
- React Optimization Techniques - https://www.freecodecamp.org/news/react-performance-optimization-techniques/
- Best React Performance Monitoring Tools - https://embrace.io/blog/best-react-performance-monitoring-tools/