当前位置: 首页 > news >正文

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卸载&#xff…...

手机可以格式化存储卡吗?格式化以后出现什么情况

随着智能手机的普及,存储卡(如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、数据库类型、版…...

Linux 文件类型,目录与路径,文件与目录管理

文件类型 后面的字符表示文件类型标志 普通文件:-(纯文本文件,二进制文件,数据格式文件) 如文本文件、图片、程序文件等。 目录文件:d(directory) 用来存放其他文件或子目录。 设备…...

TDengine 快速体验(Docker 镜像方式)

简介 TDengine 可以通过安装包、Docker 镜像 及云服务快速体验 TDengine 的功能,本节首先介绍如何通过 Docker 快速体验 TDengine,然后介绍如何在 Docker 环境下体验 TDengine 的写入和查询功能。如果你不熟悉 Docker,请使用 安装包的方式快…...

《Qt C++ 与 OpenCV:解锁视频播放程序设计的奥秘》

引言:探索视频播放程序设计之旅 在当今数字化时代,多媒体应用已渗透到我们生活的方方面面,从日常的视频娱乐到专业的视频监控、视频会议系统,视频播放程序作为多媒体应用的核心组成部分,扮演着至关重要的角色。无论是在个人电脑、移动设备还是智能电视等平台上,用户都期望…...

STM32+rt-thread判断是否联网

一、根据NETDEV_FLAG_INTERNET_UP位判断 static bool is_conncected(void) {struct netdev *dev RT_NULL;dev netdev_get_first_by_flags(NETDEV_FLAG_INTERNET_UP);if (dev RT_NULL){printf("wait netdev internet up...");return false;}else{printf("loc…...

《Playwright:微软的自动化测试工具详解》

Playwright 简介:声明内容来自网络,将内容拼接整理出来的文档 Playwright 是微软开发的自动化测试工具,支持 Chrome、Firefox、Safari 等主流浏览器,提供多语言 API(Python、JavaScript、Java、.NET)。它的特点包括&a…...

Python爬虫(二):爬虫完整流程

爬虫完整流程详解(7大核心步骤实战技巧) 一、爬虫完整工作流程 以下是爬虫开发的完整流程,我将结合具体技术点和实战经验展开说明: 1. 目标分析与前期准备 网站技术分析: 使用浏览器开发者工具(F12&…...

Linux-07 ubuntu 的 chrome 启动不了

文章目录 问题原因解决步骤一、卸载旧版chrome二、重新安装chorme三、启动不了,报错如下四、启动不了,解决如下 总结 问题原因 在应用中可以看到chrome,但是打不开(说明:原来的ubuntu系统出问题了,这个是备用的硬盘&a…...

图表类系列各种样式PPT模版分享

图标图表系列PPT模版,柱状图PPT模版,线状图PPT模版,折线图PPT模版,饼状图PPT模版,雷达图PPT模版,树状图PPT模版 图表类系列各种样式PPT模版分享:图表系列PPT模板https://pan.quark.cn/s/20d40aa…...

AspectJ 在 Android 中的完整使用指南

一、环境配置(Gradle 7.0 适配) 1. 项目级 build.gradle // 注意:沪江插件已停更,推荐官方兼容方案 buildscript {dependencies {classpath org.aspectj:aspectjtools:1.9.9.1 // AspectJ 工具} } 2. 模块级 build.gradle plu…...

#Uniapp篇:chrome调试unapp适配

chrome调试设备----使用Android模拟机开发调试移动端页面 Chrome://inspect/#devices MuMu模拟器Edge浏览器:Android原生APP嵌入的H5页面元素定位 chrome://inspect/#devices uniapp单位适配 根路径下 postcss.config.js 需要装这些插件 “postcss”: “^8.5.…...