React 正在成为全栈框架
liuian 2024-12-03 16:31 64 浏览
React已经成为全栈型框架,前后端通吃。你准备好了吗?
React 已经添加了服务器组件和服务器操作,正在演变成一个全栈框架。它是曾经榜单中最流行的前端框架,现在成功地弥合了前后端之间的鸿沟,统治着两边的开发者。
我写这篇文章是因为以下的插图一直萦绕在脑海中。
2010 年,框架之战以 Backbone、Knockout 和 Ember 作为开端,随后 Angular 和 React 相继出现,没有人能够预测结果。
很长一段时间内,客户端渲染 (CSR) JavaScript 应用程序占据主导地位。这些应用程序也称为单页应用程序 (SPA),通常只是一个链接到大型 JavaScript 文件的小型 HTML 文件,直到代码分拆的出现。
在此期间,前端开发由各种 JavaScript 框架和库主导(Web 开发人员喜欢进行此讨论),而后端通常不与特定语言绑定,因为 REST 已经是 API 通信的标准。
在我担任自由 Web 开发人员的这些年里,我主要使用 .NET、Java、Python 和 PHP 作为后端。就我个人而言,我只在新建项目或小型项目时在后端看到过 TypeScript/JavaScript,我可以控制后端。然而,随着全栈 React 的兴起,这种情况正在改变。
回顾过去,我们发现开发人员对 2010 年至 2020 年期间的看法因其职业生涯开始时间的不同而存在差异,这很有趣。
2010 年之前入行的开发人员发现自己处于服务器端渲染 (SSR) 环境中,并且似乎对最近转向服务器端技术感到更适应。相比之下,许多其他人花了近十年时间只在客户端渲染 (CSR) 应用程序中使用 REST API。现在他们不知道该如何看待新的全栈 React 世界。
????????????????????????????????
????????????????????????????????
??????????????????????????????
???????????????????????????????
???????????????????????????????
???????????????????????????????
????????????????????????????????? 有人忘记了 SPA 吗?
????????????????????????????????
????????????????????????????????
???????????????????????????????
???????????????????????????????
????????????????????????????????
???????????????????????????????
???????????????????????????????
???????????????????????????????
???????????????????????????????
???????????????????????????????
???????????????????????????????
????????????????????????????????但让我们回到正题上!近年来,TypeScript 已成为行业标准,为前端开发人员提供了一种类型化且更强大的编程语言。一旦开发人员接受了 TypeScript,就再也没有回头路了。
代码中一个相对较小的改变竟然会对个人和整个行业产生如此重大的影响,这真是令人着迷。
然而,TypeScript 对 REST 的影响涉及许多临时解决方案。虽然 OpenAPI(以前称为 Swagger)以前就存在,允许团队记录 REST API,但它的主要目的现在变成了生成类型化的 API 接口。尽管有可能在客户端-服务器架构中创建完美类型的接口,但根据我多年担任自由 Web 开发人员的经验,许多项目从一开始就未能正确实现它。
个人说明:可能有些开发人员对 OpenAPI 驱动的架构有积极的体验,但不幸的是我不是其中之一。
看到 TypeScript 如何改变这里的情绪,这相当有趣。一方面,使用 REST(以及用于文档目的的 OpenAPI)的非类型化 SPA 似乎“还行”。然而,一旦 TypeScript 成为标准并被视为常态,生成的类型接口就会变得难以使用,因为人们已经习惯了前端代码库中的更高标准。
生成类型接口的缺点很明显:
- 总有一个世代相传的过程
- 生成的输出很混乱
- 根据初始设置,生成的代码并不总是正确的
介绍一位老朋友:RPC。
远程过程调用并不新鲜,并且由于 tRPC而变得流行,它们在 React 生态系统中越来越受欢迎。我作为一名独立开发人员在80k 行代码应用程序上工作了半年(2023 年)。从经验来看,调用后端函数来读取和写入数据是一种启示。在技术堆栈的两侧都使用 TypeScript 的环境里,我从未感到过如此高效的工作效率。
就我个人而言,几年前,只有在(生成的)类型化 GraphQL 架构中,我才感到了类似的高效。
有一年的时间(2023 年),我无法想象有什么比 tRPC 更好。仅使用一个函数来调用后端以读取和写入数据,这感觉这是革命性的。这就是我所需要的一切吗?不。对我来说,真正的突破来自 2024 年的服务器组件和服务器操作,它们不仅通过调用它,还能够在另一端实现和执行代码,从而弥合了与服务器之间的差距。
服务器组件允许我们在服务器上执行 React 组件,从而能够从数据源(例如数据库)直接访问,然后使用 JSX 返回 UI。
import { getMessages } from '@/messages/queries/';
const MessageList = async () => {
const messages = await getMessages();
return (
<ul>
{messages.map((message) => (
<li key={message.id}>{message.text}</li>
))
} </ul>
);
};
export { MessageList };另一方面,服务器操作在后台创建 HTTP API 节点,可以通过执行函数像远程过程调用一样调用这些节点。
服务器组件和服务器操作将 React 转变为全栈框架,将前端转变为全栈环境是多么激动人心的时刻!
React 本身仅提供服务器组件和服务器操作的原语和规范。基于 React 构建的元框架可以通过其打包器弥补差距,后者负责解释客户端和服务器之间的指令(即'use client'和'use server')。
此外,Next.js 是 React 的领先元框架,率先实现了服务器组件和服务器操作。尽管 Next.js 之前已经支持服务器端渲染 (SSR),但服务器组件和服务器操作现在使开发者能够访问服务器端资源,例如数据库与消息队列。
这些标志着 React 全栈开发的开始。随着开发者开始通过服务器组件和服务器操作直接访问数据库,未来将有一个学习曲线来克服简单 CRUD 应用程序之外的复杂性。
通过全面的培训,前端开发人员很快就会掌握使用层、设计模式和最佳实践来实现后端架构。因为说句实话,没有人希望在 React 组件中看到 ORM 函数调用。
我对这种新范式转变感到兴奋!准备好迎接新时代吧,React 开发人员将实现从 UI 到数据库的垂直功能。我已经为这次旅程做好了准备,希望你也一样 :)
相关推荐
-
- 驱动网卡(怎么从新驱动网卡)
-
网卡一般是指为电脑主机提供有线无线网络功能的适配器。而网卡驱动指的就是电脑连接识别这些网卡型号的桥梁。网卡只有打上了网卡驱动才能正常使用。并不是说所有的网卡一插到电脑上面就能进行数据传输了,他都需要里面芯片组的驱动文件才能支持他进行数据传输...
-
2026-01-30 00:37 liuian
- win10更新助手装系统(微软win10更新助手)
-
1、点击首页“系统升级”的按钮,给出弹框,告诉用户需要上传IMEI码才能使用升级服务。同时给出同意和取消按钮。华为手机助手2、点击同意,则进入到“系统升级”功能华为手机助手华为手机助手3、在检测界面,...
- windows11专业版密钥最新(windows11专业版激活码永久)
-
Windows11专业版的正版密钥,我们是对windows的激活所必备的工具。该密钥我们可以通过微软商城或者通过计算机的硬件供应商去购买获得。获得了windows11专业版的正版密钥后,我...
-
- 手机删过的软件恢复(手机删除过的软件怎么恢复)
-
操作步骤:1、首先,我们需要先打开手机。然后在许多图标中找到带有[文件管理]文本的图标,然后单击“文件管理”进入页面。2、进入页面后,我们将在顶部看到一行文本:手机,最新信息,文档,视频,图片,音乐,收藏,最后是我们正在寻找的[更多],单击...
-
2026-01-29 23:55 liuian
- 一键ghost手动备份系统步骤(一键ghost 备份)
-
步骤1、首先把装有一键GHOST装系统的U盘插在电脑上,然后打开电脑马上按F2或DEL键入BIOS界面,然后就选择BOOT打USDHDD模式选择好,然后按F10键保存,电脑就会马上重启。 步骤...
- 怎么创建局域网(怎么创建局域网打游戏)
-
1、购买路由器一台。进入路由器把dhcp功能打开 2、购买一台交换机。从路由器lan端口拉出一条网线查到交换机的任意一个端口上。 3、两台以上电脑。从交换机任意端口拉出网线插到电脑上(电脑设置...
- 精灵驱动器官方下载(精灵驱动手机版下载)
-
是的。驱动精灵是一款集驱动管理和硬件检测于一体的、专业级的驱动管理和维护工具。驱动精灵为用户提供驱动备份、恢复、安装、删除、在线更新等实用功能。1、全新驱动精灵2012引擎,大幅提升硬件和驱动辨识能力...
- 一键还原系统步骤(一键还原系统有哪些)
-
1、首先需要下载安装一下Windows一键还原程序,在安装程序窗口中,点击“下一步”,弹出“用户许可协议”窗口,选择“我同意该许可协议的条款”,并点击“下一步”。 2、在弹出的“准备安装”窗口中,可...
- 电脑加速器哪个好(电脑加速器哪款好)
-
我认为pp加速器最好用,飞速土豆太懒,急速酷六根本不工作。pp加速器什么网页都加速,太任劳任怨了!以上是个人观点,具体性能请自己试。ps:我家电脑性能很好。迅游加速盒子是可以加速电脑的。因为有过之...
- 任何u盘都可以做启动盘吗(u盘必须做成启动盘才能装系统吗)
-
是的,需要注意,U盘的大小要在4G以上,最好是8G以上,因为启动盘里面需要装系统,内存小的话,不能用来安装系统。内存卡或者U盘或者移动硬盘都可以用来做启动盘安装系统。普通的U盘就可以,不过最好U盘...
- u盘怎么恢复文件(u盘文件恢复的方法)
-
开360安全卫士,点击上面的“功能大全”。点击文件恢复然后点击“数据”下的“文件恢复”功能。选择驱动接着选择需要恢复的驱动,选择接入的U盘。点击开始扫描选好就点击中间的“开始扫描”,开始扫描U盘数据。...
- 系统虚拟内存太低怎么办(系统虚拟内存占用过高什么原因)
-
1.检查系统虚拟内存使用情况,如果发现有大量的空闲内存,可以尝试释放一些不必要的进程,以释放内存空间。2.如果系统虚拟内存使用率较高,可以尝试增加系统虚拟内存的大小,以便更多的应用程序可以使用更多...
-
- 剪贴板权限设置方法(剪贴板访问权限)
-
1、首先打开iphone手机,触碰并按住单词或图像直到显示选择选项。2、其次,然后选取“拷贝”或“剪贴板”。3、勾选需要的“权限”,最后选择开启,即可完成苹果剪贴板权限设置。仅参考1.打开苹果手机设置按钮,点击【通用】。2.点击【键盘】,再...
-
2026-01-29 21:37 liuian
- 平板系统重装大师(平板重装win系统)
-
如果你的平板开不了机,但可以连接上电脑,那就能好办,楼主下载安装个平板刷机王到你的个人电脑上,然后连接你的平板,平板刷机王会自动识别你的平板,平板刷机王上有你平板的我刷机包,楼主点击下载一个,下载完成...
- 联想官网售后服务网点(联想官网售后服务热线)
-
联想3c服务中心是联想旗下的官方售后,是基于互联网O2O模式开发的全新服务平台。可以为终端用户提供多品牌手机、电脑以及其他3C类产品的维修、保养和保险服务。根据客户需求层次,联想服务针对个人及家庭客户...
- 一周热门
- 最近发表
- 标签列表
-
- python判断字典是否为空 (50)
- crontab每周一执行 (48)
- aes和des区别 (43)
- bash脚本和shell脚本的区别 (35)
- canvas库 (33)
- dataframe筛选满足条件的行 (35)
- gitlab日志 (33)
- lua xpcall (36)
- blob转json (33)
- python判断是否在列表中 (34)
- python html转pdf (36)
- 安装指定版本npm (37)
- idea搜索jar包内容 (33)
- css鼠标悬停出现隐藏的文字 (34)
- linux nacos启动命令 (33)
- gitlab 日志 (36)
- adb pull (37)
- python判断元素在不在列表里 (34)
- python 字典删除元素 (34)
- vscode切换git分支 (35)
- python bytes转16进制 (35)
- grep前后几行 (34)
- hashmap转list (35)
- c++ 字符串查找 (35)
- mysql刷新权限 (34)
