From a0ebaaee825d1dd45319abe68ea45568492cd922 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Nacho=20L=C3=B3pez?= <145539062+KrilinZ@users.noreply.github.com> Date: Mon, 3 Aug 2026 12:25:34 +0200 Subject: [PATCH 1/2] docs(readme): rewrite for clarity, SEO and AI answer engines --- README.md | 164 +++++++++++++++++++++++++++++++++++++++++------------- 1 file changed, 126 insertions(+), 38 deletions(-) diff --git a/README.md b/README.md index 1a1e1c9..06ffe04 100644 --- a/README.md +++ b/README.md @@ -1,69 +1,157 @@ -# React Interactive Tutorial & Exercises +
- +# Learn React.js Tutorial and Interactive Exercises -> By [@alesanchezr](https://twitter.com/alesanchezr) and [other contributors](https://github.com/4GeeksAcademy/react-tutorial-exercises/graphs/contributors) at [4Geeks Academy](https://4geeksacademy.co/) +[![Certified by 4Geeks](https://img.shields.io/badge/4Geeks-certified-2563eb)](https://4geeks.com/en/interactive-exercise/react-js-tutorial-exercises) +[![Autograded with LearnPack](https://img.shields.io/badge/LearnPack-autograded-2563eb)](https://4geeks.com/docs/learnpack) +[![Open in Codespaces](https://img.shields.io/badge/Open_in-Codespaces-fb5a1f)](https://codespaces.new/?repo=4GeeksAcademy/react-tutorial-exercises) -![last commit](https://img.shields.io/github/last-commit/4geeksacademy/react-tutorial-exercises) -[![build by developers](https://img.shields.io/badge/build_by-Developers-blue)](https://breatheco.de) -[![build by developers](https://img.shields.io/twitter/follow/4geeksacademy?style=social&logo=twitter)](https://twitter.com/4geeksacademy) +
+ + +This interactive React.js tutorial contains 21 exercises and takes around 8 hours to complete. You start by rendering a single `` with `ReactDOM.render`, and you finish building components with props, conditional rendering, CSS-in-JS styles and click events. 20 of the exercises are graded automatically by Jest, and each of the 21 comes with its own video walkthrough. -*Estas instrucciones [están disponibles en 🇪🇸 español](https://github.com/4GeeksAcademy/react-tutorial-exercises/blob/master/README.es.md) :es:* + +## 📋 About this tutorial + +- **Difficulty**: Easy — no previous React experience required +- **Estimated duration**: 8 hours (about 20 minutes per exercise) +- **Exercises**: 21 folders, 20 of them with automatic tests +- **Technologies**: JavaScript, React.js (JSX, prop-types, Bootstrap 5 markup) +- **Grading**: Incremental, powered by Jest 29.7.0 and `react-test-renderer` +- **Intro video**: [English](https://www.youtube.com/watch?v=yRjmuLAH25s) · [Español](https://www.youtube.com/watch?v=L21NvjxiVmc) +- **Languages**: [English](https://github.com/4GeeksAcademy/react-tutorial-exercises/blob/HEAD/README.md) · [Español](https://github.com/4GeeksAcademy/react-tutorial-exercises/blob/HEAD/README.es.md) -You can find lots of free interactive/autograded tutorials online, but there are very few about React.js. That's why we decided to create a comprehensive selection of exercises for developers who are interested in learning React.js. +## 🎯 What will you learn? -These exercises can be done by both junior and senior developers and are intended to be built through collaboration. We need your help! +- How to render HTML into the DOM with `ReactDOM.render(what, where)`, treating it as the React replacement for `innerHTML`. +- How to [write JSX](https://react.dev/learn/writing-markup-with-jsx): mixing HTML and JavaScript in one file, injecting variables with curly brackets `{ }` and reading properties from objects. +- How to turn arrays of data into arrays of HTML with `.map()`, and why React asks you for a [`key`](https://react.dev/learn/rendering-lists) on every item. +- How a plain function that returns HTML becomes a component you can call as a custom tag: `` instead of `BootstrapCard()`. +- How to [pass data with props](https://react.dev/learn/passing-props-to-a-component) and declare their types with `propTypes`, so the same component works for Bob Dylan and Paul McCartney. +- How to do [conditional rendering](https://react.dev/learn/conditional-rendering): returning `null` to hide a component, or mapping a `color` prop to different Bootstrap classes. +- How to style components with CSS-in-JS objects, where properties are camelCase (`fontSize`, `borderRadius`) and values are strings. +- How to listen to user events by attaching `onClick` to a JSX tag. -If you find any bugs or spelling issues, please contribute and report them, and we will correct them. +## 👀 What will you build? - -## One click installation (recommended): +The 21 exercises are numbered so the difficulty rises in small steps. This is the real progression inside the `exercises/` folder: -You can open these exercises in just a few seconds by clicking: [Open in Codespaces](https://codespaces.new/?repo=4GeeksAcademy/react-tutorial-exercises) (recommended) or [Open in Gitpod](https://gitpod.io#https://github.com/4GeeksAcademy/react-tutorial-exercises.git). +- **`00` Welcome** — a short read-only intro that explains the four pillars of the course: JSX, components, dynamic HTML and JS modules. +- **`01` to `01.4` — JSX basics (5 exercises)**: render `James is 12 years old`, inject a `name` variable, build an `

/

` block from a customer object, assemble a Bootstrap card for Bob Dylan, and produce a `