开发网站需要注意的安全问题,网站登录 退出怎么做,深圳网站制作服,中国万网是百度的吗技术的不断发展是必然的。如果你仔细观察这片土地#xff0c;你会注意到随着技术的成熟而出现的某些模式。特别是#xff0c;开发人员一直在努力提高性能#xff0c;简化开发过程#xff0c;增强开发人员体验。
在本指南中#xff0c;我们将分析两个帮助全栈应用程序世界…技术的不断发展是必然的。如果你仔细观察这片土地你会注意到随着技术的成熟而出现的某些模式。特别是开发人员一直在努力提高性能简化开发过程增强开发人员体验。
在本指南中我们将分析两个帮助全栈应用程序世界的开发人员实现这些目标的框架Blitz.js和RedwoodJS。
什么是Blitz.js
Blitz.js受到RubyonRails的启发是一个全栈React框架旨在帮助您尽快开发单片应用程序。它为您构建了大量样板代码因此您可以只关注业务逻辑并提供从数据库到前端的完整包。 Blitz.js enables you to request the database from the client itself using Prisma. 基本上前端组件调用一个包含PrismaDB函数调用的函数。之后Prisma将数据库中的数据返回给客户端。
对于客户端的数据管理Blitz在后台使用了React Query。
什么是RedwoodJS
RedwoodJS是一个根据JAMstack方法构建全栈应用程序的框架。如果您熟悉JAMstack并想构建一个全栈应用程序Redwood就是您的框架。
Redwood类似于传统的老派方法如客户端服务器数据库。 客户端与服务器连接在我们的案例中服务器是GraphQL服务。Redwood使用Prisma连接数据库。一旦它获取了数据它就会返回到客户端。
尽管这种方法很老但它通过提供脚手架代码和内置模块解决了与开发应用程序过程相关的许多问题。
使用Blitz.js构建全栈应用程序
既然我们了解了Blitz和Redwood是如何工作的那么让我们使用每个框架构建一个全栈应用程序并比较经验。
任何全栈应用程序的开发过程都包括三个关键阶段
设计数据库构建服务器端构建客户端
设置
您可以使用以下命令引导Blitz项目。 blitz new my-app 您将能够看到服务器和客户端的所有样板代码。
设计数据库
Blitz使用Prisma来管理数据库连接和模式。 To build a table, create a model in Prisma and run the following command. Over 200k developers use LogRocket to create better digital experiences
编辑Learn more → blitz db migrate 现在您可以直接从Blitz应用程序的客户端访问数据库。
构建服务器端
Blitz最好的一点是您不需要单独管理服务器端代码。数据层在应用程序本身的客户端进行维护。
大多数时候您只需要为特定功能创建一个CRUD。 正如您所看到的查询和突变位于客户端应用程序目录本身内部。它还包含Prisma DB实例您可以使用该实例访问模式。 通过这种方式您可以编写自定义函数或者扩展这些函数以在其中编写自己的逻辑。
就我个人而言我觉得这在大多数应用程序开发场景中都派上了用场。
构建客户端 客户端使用useQuery它是React Query的包装器使用Prisma从数据库中获取数据。然后它在React组件中呈现数据。 For a more detailed walkthrough on how to build a full-stack application using Blitz, check out “Building a fullstack React application with Blitz.js.”
使用RedwoodJS构建全栈应用程序
设置
要引导RedwoodJS项目 yarn create redwood-app ./my-app 一旦您拥有了应用程序的所有样板代码就可以开始构建服务器端和客户端了。
红木遵循单回购模式。要将任何库添加到客户端或服务器端请使用以下命令。 yarn workspace web add react-query yarn workspace api add jsonwebtoken 设计数据库
Redwood也使用Prisma作为数据层因此逻辑与Blitz相同。唯一的区别是在Prisma中完成架构后需要运行以下命令。 rw db save rw db up 基本上这将最新的模式保存为数据库快照然后将更改迁移到数据库。
构建服务器端
Redwood管理API目录中的所有服务器端代码该目录还包含带有SDL的GraphQL数据层和服务器的解析器。 完成Prisma后可以使用以下命令构建服务器代码如SDL和服务文件。 yarn rw g sdl recipe yarn rw g service recipe 这将用最少的样板代码生成SDL和服务脚手架。 现在您可以根据自己的特定需求对其进行自定义并像往常一样运行GraphQL服务器。
构建客户端
在构建Redwood应用程序的客户端时有四个关键的构建块需要关注。
1.页码
yarn rw generate page recipe
上面的命令创建了包含基本功能组件的配方页面。它还在route.js中添加了该页面的路由。
页面构建代码这样您就不需要花时间从头开始编写代码。
2.布局
yarn rw generate layout header
布局是包装常见组件如页眉和页脚的简单方法。假设您需要在所有页面中都有页眉组件。在这种情况下您可以将其作为红木布局可以在所有组件中重复使用。
3.组件
yarn rw generate component recipe
组件为您生成React功能组件。您可以使用它来呈现页面组件。
4.细胞
yarn rw generate cell users
细胞是红木的标志性特征。单元的目的是将数据获取逻辑与组件分离。您不需要在组件本身中混合数据提取。
手机会帮你处理的。您所需要做的就是导入组件内部的单元格并呈现从单元格返回的数据。
正如我之前所说这些都是关于如何使用红木构建全栈应用程序的高级概述。要了解更多详细信息请查看文章。
最后我们学习了如何使用blitz.js和redwood.js构建应用程序。让我们对它们进行比较并从开发人员的角度来看。
开发人员经验
在试用新框架时最重要的因素之一是开发人员的经验。让我们根据以下标准来比较Blitz和Redwood的开发人员体验。
学习曲线
如果你是Prisma的新手在使用Blitz或Redwood时可能会遇到学习曲线。从当前堆栈React、Redux和GraphQL切换可能有些困难。
对于Blitz您只需要了解React和Prisma就可以进行大部分应用程序开发。根据您的需求您可能还需要熟悉其他技术如GraphQL、Node和无服务器功能。
对于Redwood您需要了解React、Prisma和GraphQL。GrapQL是在Redwood中与Prisma和客户端交互的方式。
就我个人而言当我需要尽快开发和转换应用程序时我更喜欢Blitz。
开发时间
这两个框架都有助于减少开发时间。
如果您需要开发一个基本的CRUD应用程序Blitz可能是您的最佳选择因为您不需要处理GraphQL。
也就是说Redwood有更多的scaffold命令来处理样板代码。这在开发超越简单CRUD操作的应用程序时很有帮助。
可扩展性
说到可伸缩性我对这两个框架都很满意。有时您不需要复杂的应用程序体系结构来满足您的需求。
与其花时间在建筑设计上不如选择整体式建筑。Blitz和Redwood在帮助您开发可扩展应用程序方面脱颖而出。
灵活性
接下来我们将比较在每个框架内构建自定义逻辑的容易程度。
假设我想添加基本身份验证
用户必须输入用户名和密码才能在应用程序中注册然后用户可以使用其凭据登录
当我试图在我的应用程序中实现这一功能时我在两个框架中都为此寻找了一个预构建的模块以使我的工作更容易。
Redwood很少提供开箱即用的身份验证机制而且它仍在积极开发中。 Blitz正在积极研究授权会话管理。根据GitHub的说法它应该很快就会发布。
要使用本地用户名密码实现身份验证我们需要在客户端使用React Context实现自定义逻辑。
总结
根据我迄今为止的经验我发现Blitz.js和RedwoodJS在快速构建应用程序方面都非常有用。也就是说我偏爱Blitz因为如果我的应用程序不需要它不会强迫我使用GraphQL。
你更喜欢哪种框架
本文【全栈开发】Blitz.js与RedwoodJS | 程序员云开发,云时代的程序员.
欢迎收藏【架构师酒馆】和【开发者开聊】