Web Development · WDC-54

Basic React.js

Basic React.js is a beginner course in React 19, from creating a project with Vite, writing JSX and splitting pages into components with props and state, to loading data from a REST API, building multi-page apps with React Router and handling forms. It suits students and web developers who know basic JavaScript, and you leave able to deploy your own React app.

Updated
From 4,950 THB / person 5,500 −10% excl. VAT 7% · group rates available
PDFDownload the course outline
  • Duration12 hours · 2 days
  • FormatOnsite / live online
  • Next round8–9 Dec 26
  • CertificateIncluded

Course overview

Today's web applications need to respond quickly, feel as smooth as a mobile app and be easy to extend as the system grows. React is one of the most widely used libraries for building user interfaces because it splits a page into reusable components, and it underpins many other tools such as Next.js and React Native.

This course is a first step into writing current React the right way. Learners create a React 19 project with Vite, write JSX, split pages into components, pass values with props, handle state and events, and style their work with CSS Modules and Bootstrap. They then load data from an API with useEffect and custom hooks, build multi-page apps with React Router, create forms with form actions and React Hook Form, and carry out CRUD operations against a REST API. The course closes with building and deploying the app to the web. (2 days, 6 hours per day, 12 hours in total, Beginner level.)

What you’ll gain

  • Understand React's component-based approach and create a project with Vite
  • Write correct JSX to display data, conditions and lists
  • Create function components and pass values between them with props
  • Handle state and events with the basic hooks
  • Load data from a REST API and handle loading and error states
  • Build multi-page apps with React Router
  • Create forms with validation using form actions and React Hook Form
  • Build and deploy a React app to the web

Who this course is for

  • Students and beginners who want to move into front-end development
  • Web developers who know HTML, CSS and JavaScript and want to start using React
  • Teachers, lecturers and trainers who want to teach modern web development
  • IT staff and system administrators who need to build pages for internal systems

Prerequisites

  • Able to write HTML and CSS, with a basic understanding of how the web works
  • Basic JavaScript, including variables, functions, arrays and objects
  • Familiarity with arrow functions, destructuring and import and export will help you learn faster
  • A laptop that can run the current Node.js LTS release, VS Code and an up-to-date browser

Curriculum

Course Details

This course is the 2026 edition of Basic React.js for beginners. It runs for 2 days, 6 hours per day (12 hours in total, 09:00-16:00), as lectures with labs. Beginner level. This edition moves to React 19 and teaches only function components and hooks, dropping class components. Projects are created with Vite instead of the deprecated Create React App, routing uses the current React Router,

React 19 form actions are added alongside React Hook Form and Zod, and a mock API on the learner's machine replaces the Strapi installation. Every lab uses open source or free tools. Learners take home a lab guide, starter and solution code for every lab, and a product management CRUD project. Those who want to go further can continue with the React and NodeJS with Docker Workshop course.

Day 1 React Basics, Components and State

Section 1: Lab: Getting to Know React and Setting Up a Project

  • What React is, the component idea and single page applications
  • An overview of React 19 and its ecosystem, such as Next.js and React Native
  • Install the Node.js LTS release and create a project with Vite
  • Project structure, createRoot and React Developer Tools
  • Lab: a first React app running on your own machine

Section 2: Writing JSX

  • Why JSX is used and its basic rules, such as className and closing tags
  • Displaying variables and expressions in JSX
  • Showing or hiding content based on conditions
  • Rendering lists with map and setting keys correctly
  • Lab: a product list page built from array data

Section 3: Components and Props

  • Create function components and split files with import and export
  • Pass different kinds of values through props and set defaults
  • Accept content through children and compose components
  • Principles for splitting components so they can be reused
  • Lab: a product card reused across the page

Section 4: Lab: State and Events

  • Handle events such as onClick and onChange
  • useState and updating object and array state without mutating it
  • Pass functions through props and lift state up to a parent component
  • useRef for referring to elements and keeping values that do not need a re-render
  • Lab: a shopping cart that adds, removes and totals items

Section 5: Styling Components

  • Ways to use CSS with React, including inline styles and CSS files
  • CSS Modules so styles do not clash between components
  • Using Bootstrap 5.3 with React, including the grid and components
  • Setting className conditionally for different states
  • Lab: a responsive shop page
Day 2 Data, Multiple Pages, Forms and Deployment

Section 6: Loading Data with useEffect and Custom Hooks

  • When to use useEffect, and when you do not need it
  • Call a REST API with the Fetch API or Axios
  • Show loading and error states to the user
  • Move data loading code into a custom hook for reuse
  • Lab: a product list page that loads data from an API

Section 7: Lab: Multi-page Apps with React Router

  • Install React Router and define routes with BrowserRouter, Routes and Route
  • Link and NavLink, with the current link highlighted
  • Read URL values with useParams and query strings with useSearchParams
  • Shared layouts with nested routes and Outlet
  • Navigate with useNavigate, protect pages that need a login and add a 404 page

Section 8: Forms in React

  • Controlled inputs and keeping form values in state
  • React 19 form actions with useActionState and useFormStatus
  • React Hook Form for forms with many fields
  • Validate data with Zod and show error messages
  • Lab: registration and login forms

Section 9: Lab: CRUD with a REST API

  • Set up a mock REST API locally and test it with Postman or Bruno
  • Read, create, update and delete data from React pages
  • Refresh the screen after saving and confirm before deleting
  • Keep the API URL in a .env file and understand CORS issues
  • Lab: a product management CRUD app with React and Bootstrap

Section 10: Workshop: Building and Deploying a React App

  • Check the project before deployment and create a production build with Vite
  • Deploy to GitHub Pages, Netlify or Vercel
  • Fix fallback URL issues in single page applications
  • Use an AI assistant to explain and fix code, and check the result yourself
  • Next steps towards TypeScript, Next.js and React Native

Schedule & training options

For individuals — public rounds

8–9December
Classroom8–9 Dec 26
20 seats left
9–10February
Classroom9–10 Feb 27
20 seats left
7–8April
Classroom7–8 Apr 27
20 seats left
22–23June
Classroom22–23 Jun 27
20 seats left
3–4August
Classroom3–4 Aug 27
20 seats left
19–20October
Classroom19–20 Oct 27
20 seats left
23–24December
Classroom23–24 Dec 27
20 seats left

For organisations — in-house / private

  • Tailor the content to your team’s tools and projects
  • Your dates, at your office or live online
  • Quotation with tax ID for procurement
Corporate training quote

Instructors

Frequently asked questions

What is JSX, and how is it different from HTML?

JSX is a syntax for writing HTML-like markup inside JavaScript, which tools such as Vite turn into React function calls. Unlike HTML, it uses className instead of class and htmlFor instead of for, attributes are camelCase such as onClick, every tag must be closed and a component must return a single root element or wrap its content in a Fragment. JavaScript values and expressions go inside curly braces.

What is the difference between props and state in React?

Props are values a parent component passes to a child; the child reads them but should not change them. State is data a component owns and can change itself, such as what has been typed into a form. You create it with useState, and calling the setter makes React re-render. When state holds an object or array, create a new value instead of changing the old one, and if a child needs to change the parent's data, the parent passes a function down through props.

What are the steps to build a multi-page site with React Router?

Install the react-router package, which current versions use in place of react-router-dom, and wrap the app in BrowserRouter. Define routes with Routes and Route, matching each path to a page component. Use Link or NavLink instead of an a tag so pages change without a full reload, read URL parameters with useParams, share layouts with Outlet, navigate from code with useNavigate, and add a final route with the path * to show a 404 page.

Who is the Basic React.js course for, and what should I know beforehand?

It suits students and beginners who want to become front-end developers, web developers who want to start with React, teachers who want to teach modern web development, and IT staff who build pages for internal systems. You should be able to write basic HTML, CSS and JavaScript, including variables, functions, arrays and objects. Please bring a laptop that can run Node.js and VS Code.

What will I be able to do after the Basic React.js course?

You will be able to create a React 19 project with Vite, split pages into components, pass values with props, handle state and events, load data from a REST API, build multi-page apps with React Router, create validated forms, build a CRUD app and deploy it to the web. Participants who complete the training receive a Certificate of Completion with its own number, which can be verified online.

Can the Basic React.js course be run in-house for our team?

Yes. It can be run in-house for your team, with examples adapted to your work, such as building pages that connect to the APIs of systems your organisation already uses. You can request a quotation from this page, or contact us on LINE @itgenius or by phone on 02-570-8449.