如何在2023年学习React

如何,学习,react · 浏览次数 : 343

小编点评

## 2023年学习React的方式比较:库和框架 本文比较两种学习React的方式:库的方式和框架的方式。 **库方式:** * React已经作为一个库使用,十年级开发。 * 许多其他互补库可以与React一起使用。 * 建议学习React作为库,因为你可以完全专注于学习React基础知识。 **框架方式:** * 框架提供构建React应用程序的基石。 * 框架会根据React本身提供的明确定义的规范实现该架构构建块。 * 建议学习React作为框架,因为框架将提供一些与React相同的功能。 **学习React的建议:** * 不要忽略React作为库的基础知识。 * 从框架开始学习React。 *重点关注两个实体(框架和库)的交汇处以及它们提供给你的工具。 * 可以查看课程、视频或书籍来学习React基础知识。

正文

在2023年学习React并不是一件容易的事情。自2019年React Hooks发布以来,我们已经拥有了很多稳定性,但现在形势正在再次变化。而这次变化可能比使用React Hooks时更加不稳定。在本文中,我想比较两种学习React的方式:以库的方式和以框架的方式。

为了让事情更加清晰:React发布了新的文档,并建议将React用于完全集成的框架中。文档主张使用一个(元)框架(例如Next.js),而不是将React作为库(或框架 )在像Vite或Parcel这样的打包工具中使用。我对此的看法是,在框架最终成为默认选项之前,仍然建议使用其他React启动工具,而不仅仅是完全集成的React框架,以使转变更加容易。

技术是个圈

谁不知道这个技术短语是来自嘲笑即将到来的不可避免变化的高级开发?没错,我们创造,学习,适应。一直以来都是这样,这是反馈循环的本质。

开发者也对Web开发的当前状态发表了类似的看法:在大约2000年到2010年,我们在PHP、Java、C#中,将Web应用程序实现为服务器端应用程序(SSR - 服务端渲染/服务端路由),接着是Ruby on Rails。他们将越来越多的JavaScript(例如jQuery、MooTools、Dojo)混合在一起,以改善客户端的用户体验。

在2010年,形势转向了以客户端为主的应用程序(CSR - 客户端渲染/客户端路由),这是在单页应用程序(SPA)这个总称下的完整JavaScript解决方案。

  • 第一代:Backbone,Knockout,Ember,Angular
  • 第二代:React,Vue
  • 二点五代:Svelte
  • 第三代:Solid,Qwik

如今,许多人将SPA称为Web开发历史上的错误。

然而,SPA有其存在的意义,而且SPA成为JavaScript(以及后来的TypeScript)作为Web应用框架起飞的条件,并得出将JavaScript/TypeScript用于SSR的结论,因为底层技术的缺失(例如缺少HTTP流)使我们以前(到目前为止)无法实现它。

服务端的React

总之,这种作为SPA的web应用程序的状态大约持续了10年…

现在圆圈已经闭合了,因为我们正在回到使用React和许多其他框架的SSR;每个框架(Vue、Svelte、Solid、Qwik、Angular)都相互影响着。

虽然许多非原生JavaScript开发人员嘲笑这种转变是“回到了过去”(参见2000-2010年),或者是“JavaScript在模仿PHP”,但是他们忽略了与上一个周期相比的所有改进(例如部分/选择性水合、服务端组件作为架构模式、可恢复性)。

JavaScript(更好的说法是TypeScript)是SSR Web应用程序的一等公民。

它将是下一个十年我们实现Web应用程序的方式...

...在人工智能接管之前(开个玩笑)。

扯远了,我们来谈谈React以及如何在这些动荡的水域中学习它。

学习作为库的React

从发布以来,React已经作为一个库使用了将近十年。React开发人员一直在使用React与丰富的生态系统中的许多其他互补库一起使用。React Router就是其中一个受欢迎的库,因为它为React在SPA世界中启用了客户端路由。

大部分React的学习材料都将其作为一个库来教授。新的React文档这样做,最流行的React书籍《The Road to React》也是如此,还有许多其他在线教程、视频和课程。

学习React作为一个库时,你不会被框架分心。你可以完全专注于学习React的基础知识:元素 vs 组件,React Hooks,自定义Hooks,函数组件,事件处理器,表单,Refs,条件渲染,Props,然后再集成诸如React 测试库或样式组件(或任何其他React样式解决方案)等互补的第三方库。

通常你会使用类似Vite的打包工具来学习React。当打包工具在背后消失时,你将学习如何使用React创建客户端路由/渲染的SPA。

如今,许多React初学者对学习React作为一个库感到不确定,因为当前的说法告诉我们应该学习框架。虽然我同意未来的趋势是完全集成的框架,但是专注于学习React的基础知识并不会使你学到错误的东西。

初学者也不会错过SSR,因为仍然有许多应用程序在没有框架的情况下运行。尽管SSR将在未来成为主流,但现在还没有到达那一步,你将很幸运地掌握如何使用远程REST / GraphQL / tRPC API,来创建客户端应用程序的历史知识。这将是你技术栈中的一项基本技能(特别是与API一起工作)。

学习作为框架的React

未来,React将作为一个提供框架所需基本构建块的库而展现。虽然开发人员过去一直能够自己使用React的功能,但随着React作为一个框架走向未来,这种情况将不再存在。

例如,React服务端组件会与路由和数据获取密切集成。虽然框架将根据React本身提供的明确定义的规范实现这个架构构建块,但日常的React开发人员只会将它们作为框架提供的功能来使用,因为他们不需要自己根据规范来实现它们。

这样做有充分的理由,因为我们希望框架处理细节,而React开发人员可以专注于实现其业务逻辑。

在学习React作为框架时,最好的选择是学习Next.js。它具有基于文件的路由,许多渲染技术(CSR、SSG、ISR、SSR),其中SSR是一等公民,内置图像、SEO和字体支持。它也尽可能接近于在框架中使用React,因为它与React在诸如React服务端组件等功能上密切合作。此外,许多React核心开发人员现在正在为Vercel工作,Vercel是Next.js背后的公司。

建议

学习React作为库或框架不必是一个排他性的决定。以下是我给React初学者的建议:

在学习React作为框架的同时,不要忽略它作为库的基础知识。例如,你可以从框架开始学习React。最有可能的是,你会首先使用像Next这样的框架实现页面之间的路由转换。这个特性完全由框架提供,而不是React本身。但是,一旦你接触到React的基础知识,比如Hooks,回到React作为库的基础知识总是一个好的动力。

2023年学习React的一种方法:在实现一个你感兴趣的领域的应用程序(例如体育、动漫、游戏、电子商务、生产力、音乐)时,同时使用React和Next的文档。

你可以从Next的文档开始。但是每当你接触到React的基础知识时,回到React的文档中。重点关注两个实体(框架和库)的交汇处以及它们提供给你的工具。

如果你想通过补充学习资源来学习React的基础知识,请查看课程、视频或书籍。这些资源可能会为React作为库及其基础知识提供不同的视角。

以上就是本文的全部内容,如果对你有所帮助,欢迎点赞、收藏、转发~

与如何在2023年学习React相似的内容:

如何在2023年学习React

在2023年学习React并不是一件容易的事情。自2019年React Hooks发布以来,我们已经拥有了很多稳定性,但现在形势正在再次变化。而这次变化可能比使用React Hooks时更加不稳定。在本文中,我想比较两种学习React的方式:以库的方式和以框架的方式。 为了让事情更加清晰:React

如何在2023年开启React项目

在这里,我想给你一个新的React项目入门的简要概述。我想反思一下优点和缺点,反思一下作为一个开发者所需要的技术水平,反思一下作为一个React开发者,每个启动项目都能为你提供哪些功能。最后,你将了解到针对不同需求的3种解决方案。 **免责声明**:从个人开发者的角度来看,我完全支持React团队在

吐血整理如何在Google Earth Engine上写循环 五个代码实例详细拆解

在这里同步一篇本人的原创文章。原文发布于2023年发布在知乎专栏,转移过来时略有修改。全文共计3万余字,希望帮助到GEE小白快速进阶。 引言 这篇文章主要解答GEE中.map()和.iterate()函数的用法。 首先解答一个疑问,为什么需要自己写循环?确实,GEE 为各种数据类型提供了无数常用的内

8个云成本优化的最佳实践

在《2022年云计算现状报告》中,国际知名软件资产管理商 Flexera 通过对近千家企业进行调查得出数据:企业平均浪费32%的云业务支出。随后,在2023年的报告中,FinOps 12年来首次超越安全,成为诸多企业关注的头等大事。 本文我们将展开聊聊企业乃至开发人员如何进行云成本优化。 1、设置指

在这个大环境下我是如何找工作的

![](https://s2.loli.net/2023/06/19/SQP9LxtXNhGwyev.png) 蛮久没更新了,本次我想聊聊找工作的事情,相信大家都能感受到从去年开始到现在市场是一天比一天差,特别是在我们互联网 IT 行业。 已经过了 18 年之前的高速发展的红利期,能做的互联网应用几

基于.NetCore开发博客项目 StarBlog - (26) 集成Swagger接口文档

## 前言 这是StarBlog系列在2023年的第一篇更新😃~ 在之前的文章里,我们已经完成了部分接口的开发,接下来需要使用 curl、Postman 这类工具对这些接口进行测试,但接口一多,每次测试都要一个个填入地址和对应参数会比较麻烦… 我们需要一种直观的方式来汇总项目里的所有接口,并且如果

您好,2023!

2022年初,当时的自己在 您好,2022! 说要多追求无定量标准,所以没有列出具体量化的指标。 如今到了2023年,深思熟虑后决定还是要梳理下这些年制定的计划,看看哪些之前未完成的指标还适合继续努力的,好作为2023年的目标指引。 回顾了这些年的要点,梳理出需要在2023及之后的目标方向: 工作&

求救信:救下园子,保住这块开发者的天地

创建园子,是人生的最大押注,相信只要专心为开发者服务,一定会有出路。 二十年的专注,如今除了园子一无所有,却要在2024年第三季度一掷孤注,尽一切可能让这块伴随众多开发者成长的热土被保住。 时间的脚步一刻不停留,将园子推到命运的关口,如果这个季度再不解决资金的缺口,园子将无路可走。 2023年在多方

Linux平台Oracle 23c单实例 安装部署配置 快速参考

转眼间已经2023年,再有一周就要过年了,在这里先给大家拜个早年,祝大家新的一年万事顺利。 Oracle如今版本号也和年份挂钩,在前段时间的OCW上也宣布发布了beta版本的23c,因为23c是继19c之后的另一个长期支持版本,所以今天就下载安装测试尝尝鲜。 自己的测试环境目前剩余资源有限,就先装个

基于Llama2模型的开源模型

2023年7月18日Meta开源了Llama2,在2万亿个Token上训练,可用于商业和研究,包括从7B到70B模型权重、预训练和微调的代码。相比Llama1,Llama2有较多提升,评估结果如下所示: 基于Llama2模型的开源模型如下所示: 1.WizardCoder Python V1.0 h