The R in MERN is a library, not a framework. React 7,897 does one thing: it turns data into a description of a user interface and keeps the DOM in agreement with that description as the data changes. Everything else — routing, forms, data fetching, a store — is a choice you make on top of it. That is why a React chapter is long: the library is small, and the decisions around it are not.
You write components: plain JavaScript functions that take an object of inputs and return markup. React calls them, compares the result with what it rendered last time, and touches only the DOM nodes that differ. You never again have to remember which of seven event handlers also has to hide the error message. State changes; the screen follows.
The version here is React 19.3.0, released on 9 September 2026, which has absorbed much of the boilerplate older tutorials still teach: refs are ordinary props, use reads a promise inside render, form actions handle pending and error states, and the React Compiler can insert memoization for you. Class components, propTypes and ReactDOM.render appear only where you need to recognize them in old code. Front-End Web Development covers the JavaScript, TypeScript, DOM and CSS underneath; Express.js supplies the Express 24,430 API these examples call, and Next.js takes server components from concept to practice.
What you will learn
How JSX compiles, and why components must be pure functions of props and state.
How to hold state with useState and useReducer, and when to lift it up.
How effects synchronize a component with the network, the DOM and subscriptions.
How context, refs, memoization and the React Compiler change re-render behavior.
How concurrent rendering, Suspense and transitions keep an interface responsive.
How to build forms, custom hooks and accessible, typed components, and test them.
How to route with React Router 139,386 , hold shared state in Redux Toolkit 3,824 , and render on the server.
Sections
- Getting Started with React
- JSX and Components
- State and Events
- Effects
- Context and Reducers
- Refs and the DOM
- Memoization and Compiler
- Concurrent Rendering
- Forms
- Custom Hooks
- Component Design Patterns
- Performance Optimization
- TypeScript
- Accessibility
- Testing React Applications
- Routing with React Router
- Data Routers
- State Management with Redux
- When to Use a Store
- Store, Actions and Reducers
- Combining Reducers
- Middleware
- Thunks
- Redux DevTools
- The Provider
- useSelector and useDispatch
- useStore
- connect as Legacy
- configureStore
- createSlice
- createAsyncThunk
- createEntityAdapter
- createSelector
- Listener Middleware
- Queries with RTK Query
- Mutations with RTK Query
- Cache Lifetime and Refetching
- The React Library Ecosystem
- Server Rendering
- Test Yourself!