网易首页 > 网易号 > 正文 申请入驻

2021年React学习路线图

0
分享至

  作者 | Michael Chi

  译者 | 吴留坡

  策划 | 田晓旭

  2018 年我们写过一次 React 学习路线图(https://www.infoq.cn/article/AEkiVAiJf25LZmoUe_yc),两年过去了,又有哪些变化呢?

  React 从入门到精通,你要知道的都在这。

  React 是最流行的 JavaScript 库之一,用于创建动态网页应用。背后有大量的社区支持和活跃的开发团队。

  React 核心库相对简单,但是只学这个库并不够,特别是创建复杂的网页应用时。

  我从 2016 年开始用 React 开发,当任务变得越来越复杂时,我不得不学习其他辅助库,来实现这些功能。

  本文列出重要的 React 概念和其他你需要知道的有用的库,你可以学到怎么用 React 创建真实应用。

  1. 预备知识

  既然 React 是 JavaScript 库,你需要熟练掌握 JavaScript 基础和 ES6 语法。建议你学习 React 之前,先用纯 HTML/CSS 和原生 JavaScript 写一个简单的网站。

  2. 基础入门

  这一节,我会分享一些必须学习的知识,从而可以创建简单但有用的 React 应用,结尾推荐了我用过的学习资源。

  2.1 create-react-app 脚手架

  https://github.com/facebook/create-react-app

  通过一行命令,不需要配置就可以创建 React 应用,支持 macOS, Windows, and Linux。

  我相信“码上学习”,这个库将帮你从 React 应用中立即开始。

  它用几个默认文件搭建项目,让你直接开始编码,了解 React 是怎么工作的。

  如果觉得好奇,你可以把应用配置释放出来(译者注,eject 是 create-react-app 的一个子命令,执行 npm run eject 后,将拷贝 node_modules/react-scripts 下默认的配置文件到项目 config 和 scripts 目录,便于自定义应用配置项、和编译打包脚本),深入了解 React 代码是怎样转换并运行在浏览器上。如果你是初学者,不用现在就考虑 React 应用是怎么从脚手架创建来的。

  2.2 JSX 模版语法

  你应该从这个 React 最基础的概念开始,它用 JSX 创建组件。你几乎看不到不用 JSX 创建的真实应用。先熟悉下面几个话题。

  用 JSX 渲染一个元素:

  https://zh-hans.reactjs.org/docs/rendering-elements.html

  内嵌 JavaScript 表达式:

  https://zh-hans.reactjs.org/docs/introducing-jsx.html#embedding-expressions-in-jsx

  特定元素属性:

  https://zh-hans.reactjs.org/docs/introducing-jsx.html#specifying-attributes-with-jsx

  更新已渲染的元素:

  https://zh-hans.reactjs.org/docs/rendering-elements.html#updating-the-rendered-element

  2.3 组件

  你需要掌握这个非常重要的概念,一个 React 应用由很多独立的可重用的组件组成。

  组件是高度具体的并且通常孤立的代码片段。每个组件最好只处理一件事情,通过参数和上下文共享数据。例如,你可能有单个头部组件,仅用来渲染导航链接。

  从四部分来理解组件:

  学习组件之间的数据通讯

  从组件的角度想象一个页面

  生命周期和状态

  函数和类组件

  你应该理解属性的概念,它是怎么传递到子组件,怎么使用 PropTypes 来进行类型检查。上下文是组件数据通讯的另一种相对高级的方式。

  接下来你用组件的概念思考一个页面。随便找个网页,就像 H&M 官网,尝试把它分割成组件,迫使你将注意力集中在尽可能少的代码上,练习代码设计。面试的时候,我也被多次要求这样。

图片 React Bootstrap 主页被分割成多个组件

  每个组件有一套生命周期,动态数据保存在状态中。当状态中的数据发生改变时,组件会再次渲染,来更新这些变更。你要理解这几个基础概念。

  学习这些概念时,毫无疑问你将遇到条件渲染和从列表中渲染多个组件。此时,你应该创建一个简单的 React 应用。

  最后要理解的是,函数组件和类组件之间的差异,以及他们的用法,这就是 Hooks。

  2.4 Hooks

  Hooks 简介:

  https://zh-hans.reactjs.org/docs/hooks-intro.html

  React Hook 是 React 16.8 引入的新特性。它用在函数组件中,允许开发者不使用类的情况下,使用状态和其他特性。

  之前,函数组件是无状态的,状态和生命周期用在类组件中。有了 Hooks,开发者可以在函数组件中使用状态。

  你应该知道如何使用最常见的 Hooks,比如 setState 和 useEffect。

  2.5 React Router

  React Router:React 中的声明式路由

  https://reactrouter.com/web/guides/quick-start

  React Router 是 React 中的路由库,允许你基于 URL 渲染不同的组件。

  学习这个组件,将是你开始创建全栈 React 应用的第一步。

  2.6 React Query

  React Query

  https://react-query.tanstack.com/

  一个网页需要获取数据,复杂的时候需要维护大量的状态,React 没有约定怎么获取和更新数据。状态管理很麻烦,所以有了 Redux 这样的库。

  然而,Redux 很复杂,并且引入了大量的模版代码。如果你刚开始学习 React,你应该从更简单的东西开始。

  React Query 是另一个轻量级库,经常被描述成“React 中看不见的数据请求库”。它比 Redux 容易多,也可以使用 Hooks(现在你应该熟悉它了)。

  它使获取数据变得简单,可以在实际应用中做一些尝试。(我在工作中大量使用这个库)

  2.7 小结

  create-react-app

  React 基础: 组件, 属性, 生命周期和状态

  React Hooks

  React Router

  React Query

  2.8 推荐资源

  React 官方文档

  https://zh-hans.reactjs.org/docs/getting-started.html

  Traversy Media’s React crash course

  https://www.youtube.com/watch?v=sBws8MSXN7A&ab_channel=TraversyMedia

  The Net Ninja’s Hooks playlist

  https://www.youtube.com/watch?v=6RhOzQciVwI&list=PL4cUxeGkcC9hNokByJilPg5g9m2APUePI&ab_channel=TheNetNinja

  Five-minute tutorial on React Router

  https://www.freecodecamp.org/news/react-router-in-5-minutes/

  The Net Ninja’s React query playlist

  https://www.youtube.com/watch?v=x1rQ61otgtU&list=PL4cUxeGkcC9jpi7Ptjl5b50p9gLjOFani&ab_channel=TheNetNinja

  3. 高级进阶

  3.1 Redux 和 Redux Thunk

  Redux - JavaScript 应用程序的可预测状态容器

  https://redux.js.org/

  reduxjs/redux-thunk

  https://github.com/reduxjs/redux-thunk

  尽管 Redux 非常复杂,并且为最简单的数据获取引入了大量模版代码,但它仍然是业界非常流行的和广泛使用的状态管理库。

  你应该学习:

  用 Redux 搭建一个项目

  用 Redux 做数据获取和状态管理

  可选的,看一下 Redux Thunk

  一开始我很难理解 Redux。这里有一篇文章解释的很详细,并提供了一个关于 Redux 的手把手教程。

  https://www.valentinog.com/blog/redux/

  Redux Thunk 是一个流行的库,经常与 Redux 一起使用。它允许操作创建者返回函数而不是操作对象。学习 React 中它是可选的,但仍然是一个好用的库。

  3.2 测试

  Jest - 简单的 JavaScript 测试框架。

  Jest 是一个简单的 JavaScript 测试框架,它注重简单性。可用于 Babel, TypeScript, Node, React, Angular, Vue 等项目。

  React 测试库

  https://testing-library.com/docs/react-testing-library/intro/

  编写测试很重要,根据我的经验,通常比编写实际代码更难。

  您应该学习最流行的测试库,如 Jest 和 Enzyme,以及如何使用库(如 Sinon )模拟 API 调用。还有其他库,比如 React 测试库。

  当应用程序变得复杂时,要对单个组件进行良好的单元测试以确保正确性,而不是假设它们按预期的方式运行。

  3.3 高级 React 概念

  React 官方文档也区分了高级概念与主要概念。从技术上讲,构建 React 应用程序不需要了解任何高级概念。

  然而,生产级应用程序通常使用到高级概念,例如 ref 和高阶组件。充分理解 React 功能总是很有用的,即使你不使用它。

  在编写代码时,您可能会遇见它们,至少浏览一下这一部分,了解 React 可以做什么。

  3.4 React 内部是怎么实现的

  在这个阶段,你已经准备好深入了解 React 内部原理。

  您可以在 create-react-app 创建的 React 应用上运行 eject,以了解 React 代码是怎样转换并运行在浏览器上。

  您也可以尝试自己搭建 React 应用程序,而不使用 create-react-app 库。查看 Gulp、webpack 或 Babel,看看如何使用这些库来编译 React 代码。许多应用程序需要比 create-react-app 初始化的更大的灵活性。

  最后,您可以查看 React 源代码以全面了解。

  3.5 小结

  Redux/Redux Thunk

  测试 React 组件

  React 高级概念

  自己搭建一个 React 项目

  React 源码

  3.6 资源推荐

  Redux 初学者教程

  https://www.valentinog.com/blog/redux/

  Jest 速成班

  https://www.youtube.com/watch?v=7r4xVDI2vho&ab_channel=TraversyMedia

  React 测试

  https://medium.com/dailyjs/testing-react-an-overview-56204839cbad

  React 官方文档高级概念章节

  https://zh-hans.reactjs.org/docs/getting-started.html

  4. 总结

  希望这个列表对你有用,无论你是刚开始学习 React,还是想巩固 React 知识面。

  React 一直由 Facebook 开发着,集成了多年的特性和功能,迷人且易用。

  我对即将到来的功能感到非常兴奋,希望你也是。

  最终,祝你在 React 旅途中一切顺利。

  https://medium.com/better-programming/a-2021-roadmap-to-learning-react-c58c28f5bb58

特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。

Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.

相关推荐
热点推荐
斯基拉:本泽马转会利雅得新月达成,合约期至2027年

斯基拉:本泽马转会利雅得新月达成,合约期至2027年

懂球帝
2026-02-02 15:32:28
中国人的恐怖“期待”,西方怎么也想不明白,老外都吓傻了!

中国人的恐怖“期待”,西方怎么也想不明白,老外都吓傻了!

毛豆论道
2026-02-01 17:43:14
具俊晔为大S雕像取名《熙媛的永恒轨道》,设计过程全部公开

具俊晔为大S雕像取名《熙媛的永恒轨道》,设计过程全部公开

素素娱乐
2026-02-02 17:03:27
凌晨时分,美资金耗尽了,中国巨幅清除美债,特朗普通告全国4字

凌晨时分,美资金耗尽了,中国巨幅清除美债,特朗普通告全国4字

命运自认幽默
2026-02-02 15:12:35
真不识货!被易立弃用的2名球员,如今在新东家,都成了球队大腿

真不识货!被易立弃用的2名球员,如今在新东家,都成了球队大腿

金山话体育
2026-02-02 09:42:25
郑爽抱娃街头与张恒家互撕!满头白发穿搭邋遢,孩子哭到发抖太扎心

郑爽抱娃街头与张恒家互撕!满头白发穿搭邋遢,孩子哭到发抖太扎心

八星人
2026-02-02 13:29:47
金银大跌,摩根大通分析师:别慌!上涨势头还会持续,年底仍看至6300

金银大跌,摩根大通分析师:别慌!上涨势头还会持续,年底仍看至6300

华尔街见闻官方
2026-02-02 14:31:11
30岁男子如厕时猝死,妻子回忆事发前5天,那些被掩盖的生命求救信号

30岁男子如厕时猝死,妻子回忆事发前5天,那些被掩盖的生命求救信号

红星新闻
2026-02-01 23:06:17
《太平年》5个帝王结局凄惨:最惨的非石重贵、钱弘倧,是刘承祐

《太平年》5个帝王结局凄惨:最惨的非石重贵、钱弘倧,是刘承祐

暖心萌阿菇凉
2026-02-02 16:52:34
吴君如很早就说过了,陈妍希私下就是这样穿

吴君如很早就说过了,陈妍希私下就是这样穿

八星人
2026-01-21 15:14:26
为了得到“魔兽”霍华德,桃园云豹究竟付出了多大的代价?

为了得到“魔兽”霍华德,桃园云豹究竟付出了多大的代价?

罗氏八卦
2026-02-02 20:35:03
“黑色星期一”!全球股市齐跌,纳指期货1%,韩国股指跌5%,英伟达降温AI预期,金、银遭遇历史性踩踏

“黑色星期一”!全球股市齐跌,纳指期货1%,韩国股指跌5%,英伟达降温AI预期,金、银遭遇历史性踩踏

华尔街见闻官方
2026-02-02 13:59:42
章小蕙在国外太敢穿了!一袭蕾丝裙秀出尤物身材,完全没有大婶味

章小蕙在国外太敢穿了!一袭蕾丝裙秀出尤物身材,完全没有大婶味

蓓小西
2026-02-01 10:07:12
众星在大S雕像前拍照,小S双手合十感谢外界,悼念致辞全场哽咽

众星在大S雕像前拍照,小S双手合十感谢外界,悼念致辞全场哽咽

萌神木木
2026-02-02 15:28:15
令人细思极恐的“被室友拒绝3次”事件:永远不要低估人性的丑

令人细思极恐的“被室友拒绝3次”事件:永远不要低估人性的丑

另子维爱读史
2026-02-02 18:06:13
个人增值税起征点提高至1000元

个人增值税起征点提高至1000元

南方都市报
2026-02-02 07:05:17
涉嫌严重违纪违法,姜雨林被查

涉嫌严重违纪违法,姜雨林被查

都市快报橙柿互动
2026-02-02 20:44:25
歌手于文文演唱会突然晕倒,被救护车紧急送医!吴克群救场:“她少唱的,我来帮她唱”

歌手于文文演唱会突然晕倒,被救护车紧急送医!吴克群救场:“她少唱的,我来帮她唱”

黄河新闻网吕梁频道
2026-02-02 09:12:32
被戴8次绿帽子,3次被捉奸在床,这就是我们“玉女”守卫的爱情?

被戴8次绿帽子,3次被捉奸在床,这就是我们“玉女”守卫的爱情?

素衣读史
2026-01-30 17:15:38
孩子私卖长辈金镯被金店1.7万元回收,家长半年后发现要求退还遭拒绝,市监局和警方介入调查

孩子私卖长辈金镯被金店1.7万元回收,家长半年后发现要求退还遭拒绝,市监局和警方介入调查

极目新闻
2026-02-02 13:58:31
2026-02-03 03:16:49
InfoQ incentive-icons
InfoQ
有内容的技术社区媒体
12016文章数 51732关注度
往期回顾 全部

科技要闻

阿里筑墙,腾讯寄生,字节偷家

头条要闻

周生生足金挂坠戴1天被刮花 检测后发现含铁、银、钯

头条要闻

周生生足金挂坠戴1天被刮花 检测后发现含铁、银、钯

体育要闻

澳网男单决赛,属于阿尔卡拉斯的加冕仪式

娱乐要闻

57岁音乐人袁惟仁去世,家属发文悼念

财经要闻

金银暴跌 全球股市遭遇“黑色星期一”

汽车要闻

雷克萨斯LC500将于今年底停产 "最美雷克萨斯"谢幕

态度原创

时尚
手机
本地
健康
军事航空

裤子+靴子:今年冬天最经典搭配,松弛又时髦!

手机要闻

消息称三星Galaxy S27 Ultra将搭载更安全的Polar ID面部识别技术

本地新闻

云游中国|拨开云雾,巫山每帧都是航拍大片

耳石症分类型,症状大不同

军事要闻

委内瑞拉外长会见美外交使团团长

无障碍浏览 进入关怀版