2024年React初学者入门路线指南
在这篇文章中,我们一步一步探索了如何从零基础开始学习React,并逐渐成长为一名初级开发者。通过理解基础概念、实践构建静态和动态项目,最终发展到创建复杂的应用程序并加入到个人作品集中,您现在已经准备好迈向React开发者的职业道路。

引言
在2024年,学习React无疑是一个极好的选择。对于前端开发者来说,React不仅是一个流行的JavaScript库,而且是进入现代Web开发世界的关键。
在这篇文章中,我将分享一条从零开始,用3到6个月时间成为一名React初级开发者的学习路径。在开始前,给大家介绍一款强大的前端工具啊——JNPF。
应用地址:https://www.jnpfsoft.com/?csdn
开发语言:Java/.net
这是一个基于 Java Boot/.Net Core 构建的简单、跨平台快速开发框架。前后端封装了上千个常用类,方便扩展;集成了代码生成器,支持前后端业务代码生成,实现快速开发,提升工作效率;框架集成了表单、报表、图表、大屏等各种常用的 Demo 方便直接使用;后端框架支持 Vue2、Vue3。如果你有闲暇时间,可以做个知识拓展。
如果你想提高工作效率,建议可以来试试这个强大的工具。还有,记住,成为一名熟练的开发者不是赛跑,而是一场持久的学习之旅。首先,确保你每天有3-4小时的专注时间来学习和练习。根据你的个人情况和目标,可以灵活调整学习计划。
探索新版React文档(第1-2周)
刚开始学习React时,最佳的学习资源并不是课程或书籍,而是完全免费的React官方文档。2023年,React的文档进行了全面重写,无论是简单还是复杂的主题,这些文档都是关于React的官方信息源。
https://react.dev/

实践操作建议
- 阅读理解:尝试阅读并理解React文档的前10篇文章。
- 核心概念:熟悉React的核心概念,如元素、组件、JSX、通过props传递数据、渲染和列表。
- 遇到难点:如果遇到特别难理解的概念,可以向ChatGPT寻求更简单的解释。
互动式代码沙盒
新版React文档还包括互动式代码沙盒(sandboxes),这意味着你可以在浏览器中直接操作示例中的React代码,增强理解和实践能力。
是否需要先学习JavaScript?
很多人可能会问,在深入学习React之前是否需要完全掌握JavaScript。到了2024年,我的建议是:不必完全掌握,但需要了解一些基础。
React应用中通常会用到的JavaScript基础包括:
- 简单数据类型:字符串、数字和布尔值。
- 复杂数据类型:对象和数组。
- 函数:包括异步操作和Promises。
这些是进入React之前你需要知道的一些基础概念。
学习路径的灵活性
其他更深入的JavaScript知识可以在学习React的过程中遇到时再学习。因此,没有必要在开始学习React之前就花几个月时间完全掌握JavaScript。
第三周:在电脑上运行React项目
在这个阶段,你需要学会如何从零开始创建并在你的电脑上运行一个React项目。这是构建React应用的关键一步。

实践步骤
- 学习过程:预留一周时间来学习创建、安装和在本地机器上运行React项目的整个过程。
- 参考文档:React官方文档提供了完整的指南,你可以深入学习。
- 环境熟悉:花时间设置并熟悉你的代码编辑器,通常会是Visual Studio Code。了解如何使用Vite创建React项目。
工具选择和环境配置
- 编辑器选择:Visual Studio Code是最受欢迎的React代码编辑器。
- 项目创建工具:2024年,推荐使用Vite而不是Create React App来创建React项目。此时,Create React App已经过时,而且应避免使用Next.js创建项目。
- 终端操作:熟悉在终端(无论是Visual Studio Code的集成终端还是计算机的终端或命令行)中打开和运行基本命令。
版本控制和在线工具
- Git和GitHub:如果有额外时间,可以学习如何使用Git和GitHub来跟踪代码的更改。在团队合作中,使用像Git这样的版本控制系统来记录更改是非常重要的。
- 在线工具:如果在这一步遇到困难,记住你也可以使用CodeSandbox或StackBlitz之类的在线工具在浏览器中创建和编写React应用。并不是每个项目都需要在你的电脑上创建一个文件夹。
第4-6周:构建静态React项目
开始构建简单界面
现在你已经对React有了基本的了解,并知道如何使用它来构建用户界面,是时候开始构建简单的界面了。在开始制作功能完整的应用之前,你需要专注于使用React元素、组件和CSS来构建应用的外壳。
实践步骤
- 灵感来源:观察你每天使用的网站,尝试构建其中的一部分(例如按钮、导航栏、英雄区域等)。
- 分步实现:不必构建完整的页面,先从简单的部分开始。将其编写为一个独立的组件。
- CSS样式:重现组件,使其外观尽可能接近原始样式(借助CSS)。
- 组件组合:随着你越来越自信,尝试将这些组件组合成更完整的用户界面。
学习重点
- React元素和组件:学习如何将这些元素分解为可重用的组件,并尝试使用props传递数据使其动态化。
- CSS应用:建议熟悉在React中使用CSS。你可以使用简单的样式表或像Tailwind CSS这样流行的框架。
- 避免依赖组件库:尽量不要使用组件库。作为前端开发者,避免使用CSS是不可能的。你需要它来创建吸引人的界面。
HTML的语义化
这个阶段构建React的静态页面也是学习语义化HTML基础的好机会。如果你不熟悉这个概念,有许多文章可以教你如何正确地构建HTML标签结构,避免混乱的div嵌套。
第7-10周:构建动态React项目
开始构建功能性项目

继静态React项目之后,你的目标是制作小型但功能性的React项目,执行简单的任务。
实践步骤
- 小型动态应用:尝试制作10个以上的小型动态应用,使用状态(state)和事件处理功能。例如计算器、视频播放器、待办事项列表、图片轮播、名言生成器等。
- 项目规模:这些应用应该小而简单,制作时间不超过一天。
功能性和中级项目特点
- 用户交互:这些项目应该更像真实世界的应用程序,与基本的静态项目相比。它们应该能够处理用户输入、事件并使用React状态管理数据。
- 副作用处理:应该制作涉及从外部数据源请求数据(使用Fetch API)的项目。
- React Hooks:在这个阶段,你应该熟悉基本的React钩子,如useState、useEffect,有时候也需要useRef、useContext和useReducer。
- 性能相关钩子:对于useCallback和useMemo等与性能相关的钩子,不必过度担心。这些钩子应谨慎使用。
项目数量和时间管理
- 项目数量:尽量构建尽可能多的小型应用(建议至少10个),但不要在任何特定项目上花费超过一天的时间。完成一个项目,或者如果做不到,就转向下一个。
- 项目灵感:如果需要项目灵感,可以参考我的完整文章,其中展示了许多可以在一天内完成的React初学者项目。
https://www.freecodecamp.org/news/react-projects-for-beginners-easy-ideas-with-code/
第11-14周:构建你的开发者作品集
迈向更高级的项目
当你开始感到中级项目有些简单时,就是构建更高级项目的时候了。一旦你在构建小型React项目中感到自信,这表明是时候挑战更高级的项目了。
实践步骤
- 选择大型项目:选择一个更大、更有雄心的React项目,你真正想要在更长时间内(比如一个月)去构建它。
- 作品集展示:在你的开发者作品集中突出展示这个项目,并描述你在构建过程中使用的技能和工具。
- 高级项目示例:一个高级项目可能是一个较大应用程序的迷你克隆版,例如YouTube克隆版,用户可以登录、上传视频并与朋友分享。
选择大胆的项目
挑战自我:记住,React用于构建你每天使用的主要应用程序,如TikTok、Twitch、Hulu、Notion等。因此,在选择作品集项目时要有大胆的思考。
长期投入:这些更高级的项目应该需要更长的时间来完成,这是件好事。它们应该是你真正感兴趣的,使用React构建的热情项目,激发你去创造。
在构建过程中学习
技术探索:在构建过程中,你将学习许多之前不知道的事情。例如,在不少的示例项目中,你需要研究如何在React中上传媒体、使用某种认证服务进行用户认证、为React项目选择最佳视频播放库。
决策过程:在整个过程中,你还会做出许多小的决定。
最终挑战与作品集
这最后一个阶段应该是对你作为一名开发者的真正挑战。你在一个月或更长时间内构建的作品,是你开发者作品集的完美补充。
你的开发者作品集应该包含一个或多个展示你对React的熟练程度的项目。它将向潜在雇主展示你可以为工作带来的价值。
一旦你有了一个你自豪的功能性项目,感觉你对React核心概念理解得相当好,知道如何在编码时解决问题,你就应该处于一个很好的位置,可以开始申请React初级开发者职位了。
结束
在这篇文章中,我们一步一步探索了如何从零基础开始学习React,并逐渐成长为一名初级开发者。通过理解基础概念、实践构建静态和动态项目,最终发展到创建复杂的应用程序并加入到个人作品集中,您现在已经准备好迈向React开发者的职业道路。保持对学习和探索的热情,相信您会在React的世界里取得更大的成就。祝您编程愉快!
相关文章:
2024年React初学者入门路线指南
在这篇文章中,我们一步一步探索了如何从零基础开始学习React,并逐渐成长为一名初级开发者。通过理解基础概念、实践构建静态和动态项目,最终发展到创建复杂的应用程序并加入到个人作品集中,您现在已经准备好迈向React开发者的职业…...
【Java基础】了解Java安全体系JCA,使用BouncyCastle的ED25519算法生成密钥对、数据签名
文章目录 一.Java安全体系结构二.JCA和JCE三.CSP(加密服务提供程序)与Engine类1.CSP2.Engine类如何使用引擎类 四.查看当前JDK支持的算法服务提供商(Provider)五.BouncyCastle是什么六.如何使用BouncyCastle?七.bouncycastle实现ED25519工具类 一.Java安全体系结构 …...
SQL Server创建存储过程
使用以下语句创建一个存储过程: CREATE PROCEDURE [schema_name.]procedure_nameparameter1 datatype,parameter2 datatype,... AS BEGIN-- 存储过程的逻辑代码-- 可以包含SQL语句、控制流语句、变量声明等-- 示例:查询表中的数据SELECT column1, colum…...
GraphPad Prism 10:一站式数据分析解决方案
GraphPad Prism 10是一款功能强大的数据分析和可视化软件,广泛应用于生命科学研究、医学、生物、化学等多个领域。以下是对其详细功能的介绍: 首先,GraphPad Prism 10具有出色的数据可视化功能。它支持各种类型的图表和图形,包括…...
前端基础篇-深入了解 Ajax 、Axios
🔥博客主页: 【小扳_-CSDN博客】 ❤感谢大家点赞👍收藏⭐评论✍ 文章目录 1.0 Ajax 概述 2.0 Axios 概述 3.0 综合案例 1.0 Ajax 概述 通过 Ajax 可以给服务器发送请求,并获取服务器响应的数据。异步交互是指,可以在不…...
是德科技keysight N1912A双通道功率计
181/2461/8938产品概述: Keysight(原Agilent) N1912A P系列双通道功率计可提供峰值、峰均比、平均功率、上升时间、下降时间、最大功率值、最小功率值以及宽带信号的统计数据。 Keysight(原Agilent) N1912A P系列双通道功率计, 可提供峰值、峰均比、平均功率、上升…...
怿星科技Neptune CHT-S测试系统,让智能座舱测试更加高效便捷
随着汽车“智能化”浪潮的推进,汽车的智能化水平正在持续刷新行业认知。在这股智能化潮流中,智能座舱作为客户体验最为直观的部分,其重要性不言而喻。倘若座舱设备出现死机、黑屏、卡顿等现象,都将对客户的使用体验产生非常大的影…...
Vscode初建Vue时几个需要注意的问题
首先放图 注意点1.打开文件夹时,可以是VUE2 或者其他,但不能是VUE,会报错 注意点2.终端输入命令“npm init -y" npm init -y -y 的含义:yes的意思,在init的时候省去了敲回车的步骤,生成的默认的packag…...
最长不下降子序列
问题描述: 统计一个数组中的最长不下降子序列。 示例: 输入:14 输入:13 7 9 16 38 24 37 18 44 19 21 22 63 15 输出:8(其中是7 9 16 18 19 21 22 63) 方法:借鉴B站UP主T_zhao…...
QT gridlayout 循环设置组件,表格也通用 已解决
在需求中。经常遇到,表格 展示需求。 几乎都是json格式的。 // 列表配置文件QJsonArray listJsonArray getCfgJsonData("details_tab_table_config.json");if (listJsonArray.isEmpty()){return;}ui->gridWidget->setMaximumSize(QSize(310, 180)…...
后端前行Vue之路(一):初识Vue
1.Vue是什么 Vue (读音 /vjuː/,类似于 view) 是一套用于构建用户界面的渐进式框架。与其它大型框架不同的是,Vue 被设计为可以自底向上逐层应用。Vue 的核心库只关注视图层,不仅易于上手,还便于与第三方库或既有项目整合。另一方…...
C#、.NET版本、Visual Studio版本对应关系及Visual Studio老版本离线包下载地址
0、写这篇文章的目的 由于电脑的环境不同,对于一个老电脑找到一个适配的vscode环境十分不易。总结一下C#、.NET、Visual Studio版本的对应关系,及各个版本Visual Studio的下载地址供大家参考 1、C#、.NET版本、Visual Studio版本对应关系如下 2、Visua…...
yarn安装包时报错error Error: certificate has expired
安装教程: 配置镜像地址: npm config set registry https://registry.npmmirror.com//镜像:https://developer.aliyun.com/mirror/NPM 安装yarn: npm install --global yarn查看版本: yarn --version卸载ÿ…...
手机可以格式化存储卡吗?格式化以后出现什么情况
随着智能手机的普及,存储卡(如SD卡、MicroSD卡等)已成为手机存储扩展的重要工具。然而,在使用过程中,我们有时可能会遇到需要格式化存储卡的情况。那么,手机能否直接格式化存储卡呢?格式化后存储…...
亚马逊AWS展示高效纠错的全新量子比特!
亚马逊网络服务公司(AWS)在量子计算的纠错技术领域取得了显著成就,极大地简化了量子系统的复杂性和资源需求。他们的研究人员通过采用“双轨擦除”量子比特(dual-rail erasure qubit)技术,有效地克服了量子…...
FEX-Emu在Debian/Ubuntu系统使用
FEX-Emu在Debian/Ubuntu系统使用 1. Debootstrap子系统安装(可选)2. Debian/Ubuntu依赖包安装3. 获取FEX-Emu源码并编译4. 根文件系统RootFS安装5. 基于 FEX-Emu 运行应用 1. Debootstrap子系统安装(可选) sudo apt-get install …...
docker 不同架构镜像融合问题解决
1、背景 docker 作为目前容器的标准之一,但是对于多种架构的平台的混合编译支撑不是很好。因此衍生了镜像融合,分别将多种不同的架构构建好,然后将镜像进行融合上传。拉取镜像的会根据当前系统的架构拉取不同的镜像,也可以通过 -…...
windows_anaconda 安装pytorch
查看CUDA版本 cmd nvidia-smi # NVIDIA-SMI 546.56 Driver Version: 546.56 CUDA Version: 12.3nvcc --version # nvcc: NVIDIA (R) Cuda compiler driver # Copyright (c) 2005-2023 NVIDIA Corporation # Built on Wed_Nov_22_10:30:42_Pacific_Standard_Time_2023 # C…...
IP SSL证书注册流程
使用IP地址申请SSL证书,需要用公网IP地址申请,申请之前确保直接的IP地址可以开放80或者443端口两者选择1个就好,端口不需要一直开放,只要认证的几分钟内开放就可以了,然后IP地址根目录可以上传txt文件。 IP SSL证书认…...
shentou思路流程
信息收集: 1、获取域名whois信息也就是所谓的资产收集 2、服务器子域名、旁站、c段查询 3、服务器操作系统类型、版本、补丁状况、开放端口:22 ssh 80 web 445 3389.。。 4、web中间件类型、版本、网站目录结构、使用的waf等设备 5、数据库类型、版…...
【人工智能】神经网络的优化器optimizer(二):Adagrad自适应学习率优化器
一.自适应梯度算法Adagrad概述 Adagrad(Adaptive Gradient Algorithm)是一种自适应学习率的优化算法,由Duchi等人在2011年提出。其核心思想是针对不同参数自动调整学习率,适合处理稀疏数据和不同参数梯度差异较大的场景。Adagrad通…...
江苏艾立泰跨国资源接力:废料变黄金的绿色供应链革命
在华东塑料包装行业面临限塑令深度调整的背景下,江苏艾立泰以一场跨国资源接力的创新实践,重新定义了绿色供应链的边界。 跨国回收网络:废料变黄金的全球棋局 艾立泰在欧洲、东南亚建立再生塑料回收点,将海外废弃包装箱通过标准…...
高等数学(下)题型笔记(八)空间解析几何与向量代数
目录 0 前言 1 向量的点乘 1.1 基本公式 1.2 例题 2 向量的叉乘 2.1 基础知识 2.2 例题 3 空间平面方程 3.1 基础知识 3.2 例题 4 空间直线方程 4.1 基础知识 4.2 例题 5 旋转曲面及其方程 5.1 基础知识 5.2 例题 6 空间曲面的法线与切平面 6.1 基础知识 6.2…...
AI编程--插件对比分析:CodeRider、GitHub Copilot及其他
AI编程插件对比分析:CodeRider、GitHub Copilot及其他 随着人工智能技术的快速发展,AI编程插件已成为提升开发者生产力的重要工具。CodeRider和GitHub Copilot作为市场上的领先者,分别以其独特的特性和生态系统吸引了大量开发者。本文将从功…...
大语言模型(LLM)中的KV缓存压缩与动态稀疏注意力机制设计
随着大语言模型(LLM)参数规模的增长,推理阶段的内存占用和计算复杂度成为核心挑战。传统注意力机制的计算复杂度随序列长度呈二次方增长,而KV缓存的内存消耗可能高达数十GB(例如Llama2-7B处理100K token时需50GB内存&a…...
基于单片机的宠物屋智能系统设计与实现(论文+源码)
本设计基于单片机的宠物屋智能系统核心是实现对宠物生活环境及状态的智能管理。系统以单片机为中枢,连接红外测温传感器,可实时精准捕捉宠物体温变化,以便及时发现健康异常;水位检测传感器时刻监测饮用水余量,防止宠物…...
react菜单,动态绑定点击事件,菜单分离出去单独的js文件,Ant框架
1、菜单文件treeTop.js // 顶部菜单 import { AppstoreOutlined, SettingOutlined } from ant-design/icons; // 定义菜单项数据 const treeTop [{label: Docker管理,key: 1,icon: <AppstoreOutlined />,url:"/docker/index"},{label: 权限管理,key: 2,icon:…...
Linux入门课的思维导图
耗时两周,终于把慕课网上的Linux的基础入门课实操、总结完了! 第一次以Blog的形式做学习记录,过程很有意思,但也很耗时。 课程时长5h,涉及到很多专有名词,要去逐个查找,以前接触过的概念因为时…...
Excel 怎么让透视表以正常Excel表格形式显示
目录 1、创建数据透视表 2、设计 》报表布局 》以表格形式显示 3、设计 》分类汇总 》不显示分类汇总 1、创建数据透视表 2、设计 》报表布局 》以表格形式显示 3、设计 》分类汇总 》不显示分类汇总...
解决MybatisPlus使用Druid1.2.11连接池查询PG数据库报Merge sql error的一种办法
目录 前言 一、问题重现 1、环境说明 2、重现步骤 3、错误信息 二、关于LATERAL 1、Lateral作用场景 2、在四至场景中使用 三、问题解决之道 1、源码追踪 2、关闭sql合并 3、改写处理SQL 四、总结 前言 在博客:【写在创作纪念日】基于SpringBoot和PostG…...
