在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作为库及其基础知识提供不同的视角。

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