React Fundamentals
Build interactive interfaces with React components, props, state, effects, context, routing and component tests.
Leads to: Software Developer, UI Developer, Mobile Developer, Web / Full-Stack Developer
Before you start
This course builds on JavaScript Essentials. Take it first if you are new to the topic.
About this course
An intermediate course for learners who already know JavaScript and want to build modern user interfaces. You will learn why React describes the UI as a function of data, write JSX that turns arrays into elements, and compose reusable components with props and children. You will then model interface state with useState, build controlled forms, and gather complex updates into a reducer you can unit-test. The third module covers loading data in effects with loading and error states, extracting reusable logic into custom hooks, and sharing state with lifting and context. The last module introduces routing with React Router and Next.js, testing components with React Testing Library, and a portfolio project: a searchable, filterable catalog with tests. Every lesson has a reading, free videos and a quiz, and most have a React exercise that runs and is checked in your browser. Prerequisite: JavaScript Essentials.
Course content
Module 1
Components and Props
3 lessons · 1h 36mSee why React describes the UI declaratively, write JSX that turns data into elements, and compose reusable components with props and children.
- 19mWhy componentsReading
See how declarative components keep the screen in sync with your data, and how React apps are built from them.
- 38mJSX and renderingReading
Write JSX, render conditionally, and turn arrays of data into lists of elements with stable keys.
- 39mProps and compositionReading
Pass data into components with props, wrap content with children, and compose small components into screens.
Module 2
State and Events
3 lessons · 2h 4mModel interface state with useState, handle events and controlled forms, and gather complex updates into a testable reducer.
- 38museStateReading
Give components memory with useState, update it safely, and derive everything else from it.
- 42mEvents and formsReading
Handle clicks and typing, and build a controlled form whose state drives validation and submission.
- 44mReducers for complex stateReading
Collect state changes into a pure reducer with useReducer, and test it as a plain function.
Module 3
Effects and Data
3 lessons · 2h 2mLoad data in effects with loading and error states, extract reusable logic into custom hooks, and share state with lifting and context.
- 40museEffect and data fetchingReading
Run effects after render, clean them up, and fetch data with clear loading, success and error states.
- 42mCustom hooksReading
Extract reusable stateful logic, such as toggles and filters, into your own use-prefixed hooks.
- 40mContext and lifting stateReading
Share state between components by lifting it to a common parent, and deliver it deep in the tree with context.
Module 4
Building an App
3 lessons · 2h 31mMap URLs to pages with routing, test components the way users use them, and build a searchable catalog for your portfolio.
- 56mRouting basicsReading
Map URLs to pages with React Router or Next.js file-based routing, including dynamic segments and links.
- 37mTesting componentsReading
Write component tests with React Testing Library that find elements like a user and fail when behaviour breaks.
- 58mProject: a searchable catalogReading
Plan, build and test a filterable catalog with React, then publish it as a portfolio project.