Redian新闻
>
从新React文档看未来Web的开发趋势

从新React文档看未来Web的开发趋势

公众号新闻

作者 | Luke Twomey
译者 | 核子可乐
策划 | 丁晓昀

新的 React 文档终于到来,目前已经通过全新 React.dev 域与广大开发者见面。

长久以来,官方文档是一直是新手们学习 React 的好起点。然而,新文档中表现出的一些倾向却在社区中引起了不小的轰动。

首先,新文档建议在首次启动项目时使用 Next.js 或 Remix 等 React 支持的框架,而无框架开发项目的老办法则像麻风病人般被“驱逐”到了页面下方的下拉部分。

不知道这样的变化将如何影响 Web 开发的未来。作为大受欢迎的学习资源,官方文档有着非常强烈的引导性,相信开发社区、特别是那些经验不足的开发人员,肯定会严格按照说明操作、最终让框架在新项目中的使用频率大幅增加。

新文档是什么时候发布的?

新的 React 文档发布于 2023 年 3 月 16 日。

其实文档内容早在 2021 年 10 月就已经作为 beta 形式亮相了,当时主要侧重于使用 Hooks 和一些函数组件。经过近两年的调整,如今正式版本终于推出,但社区反响却是褒贬不一。

另外,原始文档已降级为旧版,但仍然开放以供参考。

新文档跟原 React 文档有何区别?

跟整个前端开发领域一样,React 的开发思路也不可能停滞不前,一直随着时间推移而稳步发展。

Hook 与 useState

React 组件有两种不同的编写方式,类组件或函数组件。

以往,如果大家需要在组件中存储状态,那唯一的选择就是使用“有状态”类选项。更短、更简单的函数组件没办法满足这类需求。

随着 React 16.8 当中 Hook 和 useState 的出现,这一切发生了变化。它们改变了游戏规则,现在允许将状态存储在函数组件当中。于是乎,函数组件成的风头盖过了更长、更复杂的类组件,成为众多 Web 开发者的首选。函数组件得势之后,旧的类组件降级为遗留选项,这也推动了“现代 React”的流行并使其成为组件编写的标准方式。

原始文档仍然非常关注类组件,这是因为很多应用都需要存储状态信息。其中列出的大部分代码示例都基于类选项,代表着当时最流行的解决方案。

尽管旧文档在讲解 React 用法和为新用户提供示例方面做得不错,但其中大量旧示例的存在还是跟现实世界中的组件编写方式有所冲突。更令人沮丧的是,刚刚开始学习 React 的人们甚至不宜立刻阅读官方文档,因为这里介绍的是一种已经过时的 React 编写方式。

而在阅读较新的 beta 文档时,开发者们又抱有怀疑态度,“这可是 beta 版,里面的内容可靠吗?”面对这样一个尴尬的问题,新文档明显是想要拨乱反正、定下新标杆。

Create React App 已无人问津

长久以来,Create React App 一直是创建 React 新项目时的首选工具。它提供一种便捷方法,能够快速创建应用程序所需要的一切——开发服务器、linting、热重载开发环境、生产环境的转译和捆绑等等。

最近,Create React App 的吸引力开始被 Vite 抢走,后者凭借着显著的速度优势而越来越受到欢迎。

新文档同样不再使用 Create React App,甚至提都不提。但这个版本也没有将 Vite 作为首选方案,而开始大肆赞扬使用框架构建新应用的种种优势。

Dan Abramov 只在文档中建议将 Create React App 作为推荐框架的启动器。所以看起来 Create React App 并没有彻底出局,只是不再受到重视、推广和维护。

useEffect 的必要性受到质疑

另外,社区还提出了另一个质疑,就是新版文档在 React 组件中对 useEffect 的使用似乎有点过度。

很明显,useEffect 确实在很多不必要的情况下得到了广泛使用,而它的存在其实只会令代码更难理解、执行更慢。

文档在相关章节中提供了使用 useEffect 的常见情况和综合示例,但这些例子其实可以用其他更高效的方式来编写。

框架已成至高真理
框架能够为大部分应用程序和网站提供实际需要的功能,包括路由、数据获取和 HTML 生成等。

文档中指出,尽管我们的 React 项目可能在起步阶段不一定需要框架所提供的一切,但很可能会在未来的某个时候有所需求。如果使用框架,即可在必要时轻松添加这些新功能。

相反,如果大家选择 Vite 来创建项目,那后续就得自行负责添加额外的库来解决各种功能需求。根据文档的观点,这会降低应用程序的运行速度,同时拉高各组件间和谐匹配的难度。

文档中推荐的框架有 Next.js、Remix、Gatsby 和 Expo。就个人而言,我当然承认使用框架有其好处,连我本人的网站也是用 Next.js 创建的。我最初也是使用 Create React App 开发网站,但在考虑到页面 SEO 和为谷歌的信息抓取提供元描述和标题等内容之后,框架用实力证明了自己的价值。

React.dev 网站本身现在也是用 Next 和 Tailwind 编写的,所以官方团队明显也在走这个路子。

但有必要把框架当成排他式的优先选项吗?

文档以非常鲜明的态度指出了创建新 React 项目的最佳方式。只要读读“我可以在不用框架的情况下使用 React 吗?”这部分,就能感受到项目团队强烈建议大家使用框架。

你当然可以在不匹配框架的情况下使用 React。但如果希望使用 React 构建新的应用程序或网站,我们建议使用框架。但如果想自行创建定制化设置,我们也无权阻止。请便!
SSR (服务器端渲染)

既然如此大力推荐使用框架,这似乎意味着 SSR(服务器端渲染)也是新应用的开发首选。从我收集到的反馈意见来看,大多数开发者也确实支持这种倾向。

但我要唱唱反调,分享几个不同的观点。

对初学者更不友好

对于刚刚接触 React 世界的初学者来说,立即接触服务器端渲染很容易令人心生畏惧。

Create React App 的出色之处就在于它相对简单而且易于使用,任何人都可以快速用它构建起 React 应用程序。而强制要求使用框架和服务器端渲染不仅增加了早期学习的复杂性,也很可能成为大家接触 React 的障碍,让初学者们难以坚持下去。

老实说,就连我自己有时候都整不明白,更别说那些刚打算入行的新人了。在我看来,这东西真的挺劝退人的。

不必要的复杂性

不少网友评论说,“我只想要一个简单的客户端应用程序,不需要服务器端那些没完没了的复杂元素”。其实这话有理,因为在很多情况下,框架提供的那些额外内容和服务器元素其实完全没有任何必要。

有时候,一个简单的客户端应用程序就足够了,没必要非得把一切都交给服务器去做渲染!

客户端单页应用

咱就问一句,客户端单页应用是不是被丢进垃圾堆了?React 团队倒是矢口否认。

Dan Abramov 反驳说,虽然他们确实在推动框架作为创建新 React 应用的默认方式,但服务器端渲染并不是唯一的选项。

几乎所有这些框架都允许您生成纯客户端应用程序,几乎所有框架都可以不依赖于 Node.js 服务器。

但出于文档内所述的各种原因,他们仍然优先推荐框架,但不一定要匹配服务器端渲染。即使使用这些框架,也仍然可以创建纯客户端应用程序。

这就是 React 团队给出的结论:应该优先使用框架,并在使用框架的前提下选择不用服务器端渲染。

新文档昭示出怎样的 Web 开发图景?

官方文档中关于使用框架的建议,必将对未来新 React 应用的创建倾向产生深远影响。

与其花时间深入研究这些框架,相信会有更多人默认选择使用。这意味着未来的 Web 应用会越来越臃肿,并把服务器端处理机制全塞进去。

可以看到,虽然使用这些框架也能创建纯客户端应用程序,但这绝对不是什么常规操作,React 团队也因此受到了不少批评。

网友们非常直言不讳地驳斥了这种观点,所以希望能看到官方做点回应来消除人们的负面评论,最好是能稍微更新一下文档内容来做澄清。

当然,我倒不觉得 React 这么搞就会失去人气,毕竟它仍然是首选库、将继续在多数开发者的心目中保持领先地位,也包括我自己。

文档中提到的这些框架的流行度也会进一步飙升,毕竟 React 自己也在使用(他们的 React.dev 网站用的就是 Next.js),并开始得到官方文档的推广。

当然,也会有越来越多的应用程序使用服务器端渲染来创建,并从起步阶段就内置了所有附加功能(路由之类)。

总   结

React 官方文档是份很好的学习资料,目前的种种争议都改变不了这个基本事实。人们热切期待新的文档,现在正式版的发布终于满足了开发者群体的愿望。

新文档会帮助到很多人,特别是那些刚刚开始学习 React 的朋友。当然,经验丰富的开发者也可以将其作为重要的参考资料。

总之,新的文档确实引发了不少争议和讨论,我们也将持续关注事态的进一步发展。

相关阅读

前端工程化实战:React 的模块化开发、性能优化和组件化实践 (https://xie.infoq.cn/article/f2b2c65bf3db1ccfc2f7c4f09 )

我被 React 劫持了,很痛苦又离不开 (https://www.infoq.cn/article/CZKMjHaxbf1Z7xcSzisX )

手写一个 react,看透 react 运行机制 (https://www.infoq.cn/article/CZKMjHaxbf1Z7xcSzisX)

看透 react 源码之感受 react 的进化 (https://xie.infoq.cn/article/3e10ee935ffd1b23b1ecd8842 )

声明:本文为 InfoQ 翻译,未经许可禁止转载。

点击底部阅读原文访问 InfoQ 官网,获取更多精彩内容!

今日好文推荐

十年“屎山”终重构,但 QQ选用了微软 Teams 放弃的 Electron

开源巨星红帽裁员、瞄准“昂贵”老员工,CEO:最艰难的决定,被裁员工将获得超高额遣散费

ChatGPT写21个程序,16个有漏洞:离取代程序员还远着呢!

华为投入数千人实现自主可控ERP;SpaceX星舰爆炸了,马斯克:祝贺!谷歌合并两大人工智能部门,加速力战ChatGPT|Q资讯

微信扫码关注该文公众号作者

戳这里提交新闻线索和高质量文章给我们。
相关阅读
最新RLHF拯救语言模型「胡说八道」!微调效果比ChatGPT更好,两名华人共同一作为你的开源项目举办一场文档马拉松 | Linux 中国领导:PPT文字太单调了?NO设计感?黄从新教授:心脏电生理领域未来之路 | CCIF 2023军旅故事原创系列(45)花生米像什么?汤面中的法拉利 - TWNRM !新趋势!2023盖尔德纳奖首次颁给了非生物医学领域,Alphafold的开发者斩获大奖钉钉收购协同办公厂商「我来wolai」,大厂文档之争白热化|36氪独家百度这些年到底在干什么?揭秘即将官宣的中国版ChatGPT文心一言背后的故事!抬头看未来,把握大机会||高考陪伴14/16Hangzhou Plans Easing ‘Hukou’ Restrictions to Attract Talent从ChatGPT的崛起,看未来芯片的发展趋势海淀中考一模试卷出炉!从考题来看未来的命题趋势,小娃该准备些啥?基于契约的开发:通过明确需求优化软件开发流程PPT文件太大?这2个无损压缩的方法,你不会还不知道吧!免费直播来啦!文档专家助你构建B端产品文档思维!基于WebAssembly构建Web端音视频通话引擎用Meta「分割一切」搞定一切关系,唱跳偷袭效果拔群!NTU等提出全新RAM模型Tech Addiction Leaves China’s Rural Youth Wired for Distraction清华唐杰新作WebGLM:参数100亿、主打联网搜索,性能超OpenAI WebGPT最新ReWOO框架直指Auto-GPT和LangChain代理的冗杂性,提出轻量级LLM与工具的交互范式中国2022年每周减少3位富豪,从富豪榜看未来趋势从人口结构变化和扩内需政策看未来大众消费的热点从富豪榜变化看未来趋势《卖给洋人》《卖博士》的特色【首发】先康达生命获数千万元Pre-A轮融资,加速推进实体瘤CAR-T细胞药物的开发赠书!从历史看未来,跨越时代的经典合集|筑格精选新加坡最终将取代香港?从新加坡的命运看世界的未来从新西兰到上海 对优质教育的探索永无止境——专访哈罗上海校长Alex ReedReact官方网站更新,并启用新域名:react.dev【𝐂𝐚𝐥𝐧𝐢𝐊𝐞𝐚𝐧双皮奶无痕内裤】49元三条!巨巨巨好穿 !!简直就是辣妹顶配,食品级冰箱收纳盒【一日团】好玩!有没有欺骗 或 被欺骗过从富豪榜变化看未来趋势 || 大视野空难事故唯一幸存者:8天独自丛林求生,眼看未婚夫死在身边…
logo
联系我们隐私协议©2024 redian.news
Redian新闻
Redian.news刊载任何文章,不代表同意其说法或描述,仅为提供更多信息,也不构成任何建议。文章信息的合法性及真实性由其作者负责,与Redian.news及其运营公司无关。欢迎投稿,如发现稿件侵权,或作者不愿在本网发表文章,请版权拥有者通知本网处理。