整理 | 弯月,责编 | 郭芮

出品 | CSDN(ID:CSDNnews)

ReactJS(简称Reat)是最流行的前端框架。它由Facebook开发,近年来发展迅猛,已成为了基于组件GUI开发的标准库。

尽管还有其他前端框架,如Angular、Vue.js等,但React的独到之处在于,它仅仅关注基于组件的GUI开发,而不涉及其他的领域。例如,Angular是一个完整的框架,自带了许多功能,比如依赖注入、路由系统、表单处理、HTTP请求、动画、国际化支持,还自带支持懒惰加载的强模块系统。

所以,如果你已经有一些库来完成这些功能,或者你并不需要所有这些功能,那么React是更好的选择。不过,学习React并非易事,特别是对于刚刚入门Web开发的人来说。

博主Javin Paul即表示,“今年我刚刚开始学习React,虽然我有一些Web开发的背景,使用过HTML、CSS和JavaScript,知道一些前端开发的基础,但在学习React的时候依然走了许多弯路——实际上我现在还在坚持学习。”在他的博文中,其推荐了一张非常棒的React开发者学习路线图,它表明了哪些是React开发必学的内容 ,哪些是应该知道的,而哪些是额外的知识。

这张学习路线图由adam-golab创作,展示了成为React开发者的学习路线,以及应当学习的库。该图如下:

来源:https://github.com/adam-golab/react-developer-roadmap/blob/master/roadmap.png

下面我们来浏览一下这张路线图,看看应当学习哪些基本技能才能成为React开发者。

基础知识

不论你学习哪个框架,这些基础知识都是必须的,即HTML、CSS和JavaScript,这三者是Web开发的三大支柱。

HTML

HTML是第一根支柱,是Web开发者最重要的技能,它提供了网页的结构。

学习HTML可以参考Udemy上的《Build Responsive Real World Websites with HTML5 and CSS3 》(http://bit.ly/2DCAqNE)这门课。

CSS

CSS是Web开发的第二根支柱,用于给网页提供漂亮的样式。学习CSS可以参考这个免费的课程(http://www.java67.com/2018/03/top-5-free-courses-to-learn-web-development.html)。

JavaScript

这是Web开发的第三根支柱,有了JavaScript网页才能交互。它也是React框架的基础,所以在学习React之前必须掌握JavaScript。

从零开始学习JavaScript可以参加《The Complete JavaScript Course 2020: Build Real Projects!》(http://bit.ly/2DAthxz)这门课程。

此外,你也可以参加一门综合课程,一起学习这三门技术。比如Colt Steele的《The Web Developer Bootcamp 》(https://www.udemy.com/course/the-web-developer-bootcamp/),这门课会教你成为Web开发者所需的一切技能。

通用开发技能

不论你是前端开发者还是后端开发者,甚至是全栈工程师,你都必须了解一些通用的开发技能,才能在程序员的世界里如鱼得水。

2.1 学习Git

时至2020年,Git是必须掌握的技术。在GitHub上尝试建立几个代码仓库,并与其他分分享代码,学习怎样从Github上下载代码到你的IDE中。

如果你想学习,可以尝试这门课程《Git Complete: The definitive, step-by-step guide to Git》(http://bit.ly/2C0O0cH)。

2.2 理解HTTP(S)协议

如果想成为Web开发者,那么必须理解并掌握HTTP协议。

我并非让你去阅读HTTP标准,而是说至少要熟悉常见的HTTP请求,如GET、POST、PUT、PATCH、DELETE、OPTIONS,以及HTTP/HTTPS的基本工作原理。

2.3 学习终端命令

尽管对于前端开发来说,学习Linux或终端命令并不是必须的,但我强烈建议你熟悉终端命令,并配置好你的shell(如bash、zsh、csh)等。如果你要学习终端命令和bash,我建议你参加Udemy上的《Linux Command Line Basics》(http://bit.ly/2QJoTzn)这门课程。

2.4 算法与数据结构

这也是React开发者并不一定需要的基础编程技能,但绝对是成为程序员的必经之路。

要学习算法和数据结构,你需要阅读书籍,或者参加优秀的课程,比如《Algorithm and Data Structure part 1 and 2》(https://www.pluralsight.com/courses/ads-part1)。

如果你更喜欢读书,下面这10本算法书(http://www.java67.com/2015/09/top-10-algorithm-books-every-programmer-read-learn.html)是每个开发者都应该阅读的。

2.5 学习设计模式

就像算法和数据结构一样,设计模式并不是React开发者必须的,但学习这些知识会有很多好处。

设计模式是针对软件开发中常见问题的经过考验的解决方案。

了解设计模式可以帮你找到持久的解决方案。你可以阅读一些有关设计模式的书,或者参加注入《Design Patterns libraries》(https://www.pluralsight.com/courses/patterns-library)的课程。

学习React.js

终于进入正题了。你必须学习并掌握React,才能成为React开发。最好的学习资料就是React的官方网站,但对于初学者而言,这有可能过于复杂了。

因此Javin建议你参加一些课程,比如Max的《React MasterClass》(https://www.udemy.com/course/react-the-complete-guide-incl-redux/)或Stephen Grider的《Modern React with Redux》(https://www.udemy.com/course/react-redux/)。

学习构建工具

如果想成为专业的React开发者,就应该花些时间熟悉Web开发者需要用到的工具,如构建工具、单元测试工具、调试工具等。

下面是学习路线图中提到的一些构建工具。

包管理器

学习路线图中提到了许多包管理器,但你不需要学习所有工具,只需要学习npm和webpack就足够了。等你对Web开发和React的生态系统有了更多理解之后,可以探索一下其他工具。

如果想学习Webpack,那么可以从《Webpack 2: The Complete Developer’s Guide》(https://www.udemy.com/course/webpack-2-the-complete-developers-guide/)着手。

了解一些样式也没有坏处。尽管学习路线图提到了许多东西,如CSS预处理器、CSS框架、CSS架构和CSS in JS等。

Javin建议,你至少需要学习Bootstrap,这是最重要的CSS框架。如果需要课程,可以参加《Bootstrap 4 From Scratch With 5 Projects》(https://www.udemy.com/course/bootstrap-4-from-scratch-with-5-projects/)。

学习Bootstrap后,你还可以更进一步学习Materialize或Material UI。

状态管理

React开发者需要关心的另一个重要领域就是状态管理。路线图提到了一些概念和框架:

  • 组件状态/上下文API

  • ReduxAsync动作(副作用)

如果你觉得太复杂,我建议你专注于Redux,它很不错。

型检查器

由于JavaScript并不是强类型语言,所以没有能够捕捉到类型错误的编译器。

随着应用程序的增长,类型检查能够捕获许多错误,特别是当你使用JavaScript扩展如Flow或TypeScript等。

但即使你不使用这些扩展,React也有一些内置的类型检查功能,能够帮助你提前发现bug。

由于Angular也使用TypeScript,Javin认为学习TypeScript很值得。可以试试Udemy上的课程《Ultimate TypeScript》(https://javarevisited.blogspot.com/2018/07/top-5-courses-to-learn-typescript.html)。

表单辅助工具

除了类型检查器之外,也可以学习一些表单辅助工具,如Rdux Form,能够轻松地管理表单的状态。除了Redux Form之外,还可以看看Formik、Formsy和Final form。

路由

组件是React强大的描述性编程模型的核心,而路由组件则是所有应用程序的重要组成部分。

React Router提供了一些导航组件,能够以描述式来定义应用程序。

如果你想给应用程序添加可以收藏的URL,或者想在React Native中提供导航,React Router都是必不可少的。

除了React Router之外,你还可以看看Router 5、Redux-First Router。

API客户端

现在,人们很少只构建API,大多时候都需要通过API(如REST、GraphQL等)与其他应用程序通信。

幸好许多API客户端都可供React开发者使用。

REST

  • fetch

  • SuperAgent

  • axios

GraphQL

  • Apollo

  • Relay

  • urql

Apollo Client是我最喜欢的客户端,它提供了简单易用的方式,用GraphQL来构建客户端应用程序。该客户端的设计目的是帮助你快速构建UI,利用GraphQL获取数据。它可以与任何JavaScript前端结合使用。

此外,如果你不了解GraphQL和REST,建议你花些时间学习。《REST API Design, Development & Management》(https://www.udemy.com/course/rest-api/)

工具库

工具库可以让你的工作更容易。React开发者有许多工具库可以选择,如:

  • lodash

  • moment

  • classnames

  • numeral

  • RxJ

  • SRamda

Javin不建议学习所有这些库,可以从lodahs、moment和classnames开始。

测试

React开发者必须掌握的技术之一就是测试。你应该关注那些帮助你测试的库。

下面是学习路线图中提到的一些库:

单元测试

  • Jest

  • Enzyme

  • Sinon

  • Mocha

  • Chai

  • AVA

  • Tape

端到端测试

  • Selenium

  • Webdriver

  • Cypress

  • Puppeteer

  • Cucumber.js

  • Nightwatch.js

集成测试

  • Karma

你也可以学习这个库,但推荐学习Jest。

国际化

前端开发的另一个重要话题就是国际化。你需要为日本、中国、西班牙和其他欧洲国家提供本土化的GUI。

路线图建议你学习下列技术,但多了解一些总没有错:

  • React Intl

  • React i18

  • Next

所有这些库都提供了React组件和API用于格式化日期、数字和字符串,包括复数形式,还可以处理翻译问题。

服务器端渲染

你可能还不知道服务器端渲染和客户端渲染的区别。我们先来看看这个问题,再讨论React可以使用哪些服务器端渲染库。

在客户端渲染中,浏览器会下载最少量的HTML,然后加载JavaScript,向HTML中填入内容。

而在服务器端渲染中,React会在服务器上执行,输出HTML并直接发送给浏览器。

路线图建议学习以下服务器端渲染库:

  • Next.js

  • After.js

  • Rogue

但Javin建议学习Next.js就足够了。

静态网站生成

Gatsby.js是一个现代的静态网站生成器。使用Gatsby可以创建个性化的、支持登录的网站。它可以将数据与JavaScript结合,生成漂亮的HTML内容。

后端框架继承

React on Rails能够将React与Rails集成。它能够提供服务器端渲染,提供rails/webpacker不能提供的SEO爬虫索引和UX性能。

移动应用

这是另一个学习React的好处,因为React Native正在迅速成为开发移动应用程序的标准方式,只需使用JavaScript,就能开发原生的界面。

路线图建议你学习以下技术:

  • React Native

  • Cordova

  • PhoneGap

但Javin认为学习React Native就足够了。

Stephen Grider的《The Complete React Native and Redux》(https://www.udemy.com/course/the-complete-react-native-and-redux-course/)课程能够教你怎样快速构建React Native应用程序!

桌面应用

还有一些基于React的框架可以构建桌面GUI,如React Native Windows,可以使用React构建原生的UWP和WPF应用程序。

建议的框架如下:

  • Proton

  • Native

  • Electron

  • React Native

  • Windows

但这些都是高级功能。你可以在精通了React之后再来学习。

虚拟现实

如果对虚拟现实应用程序有兴趣,则可以看看React 360等框架,它们都通过React提供非常好的VR体验。

参考链接:https://hackernoon.com/the-2020-reactjs-developer-roadmap-8q143yan

【END】

更多精彩推荐☞AI 看脸算命,3 万张自拍揭露:颜值即命?
☞无代码来了,还要程序员吗?
☞芯片供应被掐断,华为能否安全渡劫?
☞来了来了!趋势预测算法大PK!
☞Python开发之:Django基于Docker实现Mysql数据库读写分离、集群、主从同步详解 | 原力计划
☞15 岁黑进系统,发挑衅邮件意外获 Offer,不惑之年捐出全部财产,Twitter CEO 太牛了!
你点的每个“在看”,我都认真当成了喜欢

2020 年,React.js 开发者如何更好地修炼内功?相关推荐

  1. 2020 年 Node.js 开发者调查报告

    导读:本次调查由阿里巴巴.腾讯等公司领衔,调查时间从 2020 年 2 月至 4 月,以中文进行.截止至 4 月 10 日共有 1113 名受访者参加调研.本报告将从 Nodejs 开发者人群.应用场 ...

  2. 2020年iOS 和Android程序员请开始修炼内功

    年底聚餐,很多从事移动开发朋友都在抱怨工作不好找,收入增长慢,公司地位低等问题.遥想2010年移动大爆发时代,从事iOS和Android岗位那可是牛x大发了.真是应了那句老话,逆水行舟不进则退,甚至小 ...

  3. React.js 小书 Lesson27 - 实战分析:评论功能(六)

    React.js 小书 Lesson27 - 实战分析:评论功能(六) 本文作者:胡子大哈 本文原文:http://huziketang.com/books/react/lesson27 转载请注明出 ...

  4. Node.js 开发者 2020 年度报告

    大家好,我是若川.欢迎加我微信 ruochuan12,长期交流学习.今天分享一篇Node.js报告,记得当时我还参与填写这个调查问卷了,Node.js的重要性不言而喻.微信预计阅读只需7分钟.点击下方 ...

  5. react.js开发_2020 React.js开发人员路线图

    react.js开发 成为阅读JS开发人员的插图指南,其中包含相关课程的链接 React JS或简称React是用于开发Web应用程序的前端或GUI的领先JavaScript库之一. 在Faceboo ...

  6. 模糊选择器 js_5个很棒的 React.js 库,值得你亲手试试!

    React在过去几年变得越来越受欢迎.随之而来的是越来越多的库的发布,给我们带来了新的可能性,但最重要的是让开发这工作变得越来越简单. 在本文中,介绍 5 个 React 库,希望能给你带来一些帮助. ...

  7. React.js 2016 最佳实践 徬梓阅读 1584收藏 71

    为什么80%的码农都做不了架构师?>>>    译者按:近几个月React相关话题依旧火热,相信越来越多的开发者在尝试这样一项技术,我们团队也在PC和移动端不断总结经验.2016来了 ...

  8. React.js开发生态系统概览 [译-转]

    React.js 开发生态系统概览 [译] JavaScript领域发展速度很快,甚至有人认为这已经引起了负效应.一个前端库从早期开发的小玩具,到流行,再到过时,可能也就几个月时间.判断一个工具能否在 ...

  9. react.js基础

    现在最热门的前端框架有AngularJS.React.Bootstrap等.自从接触了ReactJS,ReactJs的虚拟DOM(Virtual DOM)和组件化的开发深深的吸引了我,下面来跟我一起领 ...

最新文章

  1. 一篇网站架构的文章:一步步构建大型网站架构
  2. Android使用ViewPager+PhotoView实现图片查看器
  3. 华为端到端项目管理流程_【达睿原创】供应链端到端管理 – 看华为是怎么做的...
  4. 隐藏SyntaxHighlighter滚动条
  5. 在RelativeLayout中对控件的显示隐藏操作问题
  6. ZerMQ安装与使用
  7. 索尼音乐牵手UNLEASH厂牌 实力新星LiCong李聪 Veegee正式加盟
  8. JQuery AJAX处理页面返回的XML
  9. Boost C++ 智能指针
  10. [Simulink]非线性系统模型建立及相轨迹
  11. Centos7解压Zip文件
  12. adc0832工作原理详解_ADC0832内部原理
  13. 使用Arduino+L298N控制光驱两项四线步进电机
  14. 支持树莓派的路由器系统_基于树莓派(Raspberry Pi)搭建openwrt路由器
  15. SAP ABAP ZBA_R004 批量导入角色里的事务代码,解放BASIS的双手
  16. 【最短路算法】第二弹:一文弄懂Bellman-Ford(贝尔曼福特算法)
  17. java拉阔机甲战棋游戏,《火焰VS外传:亡灵塔》评测:又见战棋,舍我其谁
  18. 社会管理网格化 源码_全县首家镇域网格妇联——“和大王”社会治理网格化服务管理中心妇联正式成立!...
  19. python+微信+腾讯智能闲聊
  20. Arthas监控学习与分享

热门文章

  1. jQuery EasyUI教程之datagrid应用-1
  2. spark 运行自带python示例的方式
  3. 《Linux编程》上机作业 ·004【文件I/O操作】
  4. HDU.1007 Quoit Design
  5. java weblogic admin,weblogic admin 不能重起服务(Server may already be running)
  6. Visual Studio Code (vscode) 配置 C / C++ 环境
  7. 处理数据集python脚本(处理自己制作的数据集)
  8. 迷宫探索DFS(递归记录来回路径)
  9. 记录——《C Primer Plus (第五版)》第十章编程练习第二题
  10. 中国双焊接钢塑土工格栅市场趋势报告、技术动态创新及市场预测