该教程通过使用Redwoodjs,Faunadb和Vercel构建Jamstack无服务器应用程序来指导您。我们将利用Fauna的GraphQl API作为Redwoodjs Frontend的后端,并在Vercel的一键式部署中毫不费力地部署。
期望使用此功能强大的技术堆栈深入了解Jamstack和无服务的概念。
构建您的红木应用程序
Redwoodjs是无服务器应用程序的框架,将React(Frontend),GraphQl(数据)和Prisma(数据库查询)组合在一起。尽管存在其他前端框架(例如野牛),但Redwoodjs提供了一个成熟且建立了良好的生态系统。
我们将绕过起动模板并从基本的Redwood项目构建,以检查每个组件。首先,安装纱线并运行以下命令:
纱线创建Redwood-App ./csstricks CD CSSTRICKS 纱RW开发
您的前端在localhost:8910
,后端在localhost:8911
(带有GraphIQL游乐场)上运行。红木着陆页应出现在localhost:8910
。 (注意:此示例中使用了Redwoodjs版本0.21.0;请咨询文档以获取最新版本和生产准备。)
项目结构
Redwoodjs优先考虑约定而不是配置,提供了结构化的项目布局:
<code>├── api │ ├── prisma │ │ ├── schema.prisma │ │ └── seeds.js │ └── src │ ├── functions │ │ └── graphql.js │ ├── graphql │ ├── lib │ │ └── db.js │ └── services └── web ├── public │ ├── favicon.png │ ├── README.md │ └── robots.txt └── src ├── components ├── layouts ├── pages │ ├── FatalErrorPage │ │ └── FatalErrorPage.js │ └── NotFoundPage │ └── NotFoundPage.js ├── index.css ├── index.html ├── index.js └── Routes.js</code>
该项目分为由纱线工作区管理的web
(前端)和api
(后端)目录。我们将用Faunadb替换Prisma,删除prisma
目录和db.js
的内容(但保留db.js
文件)。
index.html
index.html
文件包含root dom节点(<div id="redwood-app"></div>
)渲染React应用程序的位置。 Redwoodjs虽然以Jamstack为导向,但目前却没有像Next.js或Gatsby那样执行预读。
index.js
index.js
使用ReactDOM.render()
将主要应用程序组件呈现到redwood-app
元素中。它利用RedwoodProvider
进行上下文管理和FatalErrorBoundary
进行错误处理。
Routes.js
Routes.js
使用Redwood的路由器定义了应用程序的路由。
创建页面
让我们使用Redwood CLI创建页面:
纱线RW G页面家庭 / 纱线RW G页面
这为HomePage
和AboutPage
生成必要的文件。通过删除不必要的导航链接来简化这些页面。
布局
为导航创建可重复使用的布局:
纱线RW G布局博客
修改BlogLayout.js
以包括AboutPage
HomePage
的导航链接,并使用<link>
成分。将BlogLayout
导入到HomePage
和AboutPage
,以合并导航。
动物模式定义语言(SDL)
使用以下模式创建sdl.gql
:
类型post { 标题:字符串! 身体:绳子! } 类型查询{ 帖子:[帖子] }
将此架构上传到您的Faunadb实例。请注意,Faunadb创建了中介类型;我们将在Redwoodjs模式中解释这一点。
Redwoodjs SDL和服务
创建api/src/graphql/posts.sdl.js
镜像动物架模式,包括中介类型的PostPage
。创建api/src/services/posts/posts.js
使用graphql-request
查询FAUNA GraphQl API。切记在api
目录中安装graphql-request
和graphql
。
动物区系授权
使用环境变量,将api/src/lib/db.js
配置为在授权标题中包含您的FaunAdb Secret。
播种Faunadb
使用Fauna Shell将一些示例帖子添加到您的数据库中。
细胞
生成BlogPostsCell
来获取和显示帖子:
纱线RW生成细胞博客文章
修改BlogPostsCell.js
查询posts
并渲染每个帖子的标题和正文。将BlogPostsCell
导入到HomePage
中。
动词部署
将您的项目连接到Vercel。修改netlify.toml
(如果存在)将apiProxyPath
设置为“/api”。将您的Faunadb秘密添加到Vercel的环境变量中。 Vercel的Build Command与Redwoodjs无缝地工作。
您的申请已完成!可以使用实时演示和GitHub存储库(链接将在此处插入)。
以上是使用Redwoodjs,Fauna和Vercel部署无服务的Jamstack网站的详细内容。更多信息请关注PHP中文网其他相关文章!

CSSCOUNTERSAREDOMANAGEAUTOMANAMBERINGINWEBDESIGNS.1)他们可以使用forterablesofcontents,ListItems,and customnumbering.2)AdvancedsincludenestednumberingSystems.3)挑战挑战InclassINCludeBrowsEccerCerceribaliblesibility andperformiballibility andperformissises.4)创造性

使用滚动阴影,尤其是对于移动设备,是克里斯以前涵盖的一个微妙的UX。杰夫(Geoff)涵盖了一种使用动画限制属性的新方法。这是另一种方式。

文章讨论了CSS FlexBox,这是一种布局方法,用于有效地对齐和分布响应设计中的空间。它说明了FlexBox用法,将其与CSS网格进行了比较,并详细浏览了浏览器支持。

本文讨论了使用CSS创建响应网站的技术,包括视口元标签,灵活的网格,流体媒体,媒体查询和相对单元。它还涵盖了使用CSS网格和Flexbox一起使用,并推荐CSS框架

本文讨论了CSS盒装属性,该属性控制了元素维度的计算方式。它解释了诸如Content-Box,Border-Box和Padding-Box之类的值,以及它们对布局设计和形式对齐的影响。


热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

Video Face Swap
使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热门文章

热工具

SublimeText3 英文版
推荐:为Win版本,支持代码提示!

EditPlus 中文破解版
体积小,语法高亮,不支持代码提示功能

安全考试浏览器
Safe Exam Browser是一个安全的浏览器环境,用于安全地进行在线考试。该软件将任何计算机变成一个安全的工作站。它控制对任何实用工具的访问,并防止学生使用未经授权的资源。

螳螂BT
Mantis是一个易于部署的基于Web的缺陷跟踪工具,用于帮助产品缺陷跟踪。它需要PHP、MySQL和一个Web服务器。请查看我们的演示和托管服务。

禅工作室 13.0.1
功能强大的PHP集成开发环境