tezvyn:

React & Next.js

React, Next.js, Remix, RSC, React ecosystem

302 bites

More in React & Next.js — page 15

React's Controlled vs. Uncontrolled Components
React & Next.js2 min read

React's Controlled vs. Uncontrolled Components

A controlled component is a form input whose value is driven by React state; an uncontrolled component lets the DOM manage its own state. Use controlled for instant validation or conditional logic.

useImperativeHandle: Expose a Custom Ref API
React & Next.js2 min read

useImperativeHandle: Expose a Custom Ref API

useImperativeHandle exposes a custom API via a ref, letting a parent call specific methods on a child. Instead of exposing an entire DOM node, you can provide a handle with methods like `reset()` or `focus()`.

useLayoutEffect: Synchronous Effects Before Browser Paint
React & Next.js2 min read

useLayoutEffect: Synchronous Effects Before Browser Paint

useLayoutEffect is useEffect's synchronous twin, running its code after DOM mutations but before the browser repaints. Use it to read DOM layout and re-render to prevent visual flickers, like positioning a tooltip. Its main footgun: it blocks rendering.

React's Stale Closure Problem in Hooks
React & Next.js2 min read

React's Stale Closure Problem in Hooks

A `useEffect` closure captures props and state from its render. If the effect doesn't re-run, its functions can operate on old, "stale" data. This surfaces in timers or socket listeners. The footgun is omitting dependencies, which causes these subtle bugs.

useMemo: Cache Expensive Calculations in React
React & Next.js2 min read

useMemo: Cache Expensive Calculations in React

The useMemo hook caches a function's return value, preventing slow calculations from running on every render. Use it to skip heavy data filtering unless its inputs change. The main footgun is a missing dependency, which leads to stale, cached data.

React's useCallback: Cache Functions, Not Just Values
React & Next.js2 min read

React's useCallback: Cache Functions, Not Just Values

useCallback gives you the same function instance across re-renders, as long as its dependencies are stable. This is key for optimizing child components with React.memo or preventing useEffect from re-running.

The useReducer Hook: Predictable State Updates
React & Next.js2 min read

The useReducer Hook: Predictable State Updates

useReducer is a state machine for your components, managing complex state changes predictably. Use it when state logic is complex or the next state depends on the previous one, like in a shopping cart.

Custom Hooks: Package Component Logic for Reuse
React & Next.js2 min read

Custom Hooks: Package Component Logic for Reuse

A custom hook packages stateful logic (like useState and useEffect) into a reusable function. Use one when multiple components need the same logic, like tracking online status for a status bar and a save button. Footgun: Names must start with `use`.

React & Next.js2 min read

React's Rule: Favor Composition Over Inheritance

Instead of extending a base component, build complex UIs by wrapping and configuring smaller ones. Use this for generic containers like dialogs or for creating specialized versions of a component.

React Refs: Memory Without Re-renders
React & Next.js2 min read

React Refs: Memory Without Re-renders

A React ref is like a secret pocket for your component to remember information without triggering re-renders. Use it to hold values not needed for rendering, like a timer ID. The footgun: changing a ref's value won't update the UI; use state for that.

Thinking in React: Decomposing UIs into Components
React & Next.js2 min read

Thinking in React: Decomposing UIs into Components

Think of UIs not as one big page, but as a tree of reusable components. Start by breaking a design mockup into a hierarchy of pieces. The footgun is creating 'god components' that do too much; each component should have a single responsibility.

useEffect: Syncing React with the Outside World
React & Next.js2 min read

useEffect: Syncing React with the Outside World

useEffect synchronizes your component with systems outside React's control, acting as a bridge to the browser or network. It's for data fetching or subscriptions.

Conditional Rendering: Show UI Based on State
React & Next.js2 min read

Conditional Rendering: Show UI Based on State

React uses plain JavaScript to decide what UI to show, which is essential for displaying loading states, errors, or user-specific content. The footgun: `count && <Component />` will render a "0" if `count` is 0, not nothing.

React Events: Pass, Don't Call
React & Next.js2 min read

React Events: Pass, Don't Call

React handles user actions with event handler functions passed as props, like `onClick={handleClick}`. This is how you make buttons or forms interactive. The key mistake is calling the function (`onClick={doIt()}`), which runs on render, not on click.

useState: Giving Components Memory
React & Next.js2 min read

useState: Giving Components Memory

useState gives a component its own memory, letting it track information that changes over time. It's used for everything from handling form input to toggling UI. The biggest footgun: state updates are asynchronous and only apply on the next render.

React Fragments: Group Elements Without a Wrapper
React & Next.js86 sec read

React Fragments: Group Elements Without a Wrapper

React Fragments let you group multiple elements without adding an extra `<div>` to the DOM. Use them when a component needs to return adjacent elements, like table cells (`<td>`).

React Props: Arguments for Your Components
React & Next.js2 min read

React Props: Arguments for Your Components

Think of props as arguments for your UI components, letting you pass data from a parent down to a child. You use them to customize a component's appearance or behavior, like passing a user object to a `ProfileCard`.

JSX: Putting HTML Inside Your JavaScript Components
React & Next.js2 min read

JSX: Putting HTML Inside Your JavaScript Components

JSX is a syntax extension that lets you write HTML-like markup directly inside your JavaScript files, keeping UI logic and structure together. It's the standard way to define a React component's output. The footgun is that JSX is stricter than HTML.

React Components: Your UI Building Blocks
React & Next.js2 min read

React Components: Your UI Building Blocks

Think of React Components as custom, reusable HTML tags you create with JavaScript functions. Use them to build everything from buttons to page layouts, speeding up development.

Next.js 16 makes the app router the only router
React & Next.js30 sec read

Next.js 16 makes the app router the only router

The pages directory is officially deprecated. Migration codemods cover most apps in under an hour, and the new router gets streaming RSC by default.