搜索
首页web前端css教程使用Redwoodjs,Fauna和Vercel部署无服务的Jamstack网站

使用Redwoodjs,Fauna和Vercel部署无服务的Jamstack网站

该教程通过使用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页面

这为HomePageAboutPage生成必要的文件。通过删除不必要的导航链接来简化这些页面。

布局

为导航创建可重复使用的布局:

纱线RW G布局博客

修改BlogLayout.js以包括AboutPage HomePage的导航链接,并使用<link>成分。将BlogLayout导入到HomePageAboutPage ,以合并导航。

动物模式定义语言(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-requestgraphql

动物区系授权

使用环境变量,将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中文网其他相关文章!

声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
揭开屏幕读取器的神秘面纱:可访问的表格和最佳实践揭开屏幕读取器的神秘面纱:可访问的表格和最佳实践Mar 08, 2025 am 09:45 AM

这是我们在形式可访问性上进行的小型系列中的第三篇文章。如果您错过了第二篇文章,请查看“以:focus-visible的管理用户焦点”。在

使用智能表单框架创建JavaScript联系表格使用智能表单框架创建JavaScript联系表格Mar 07, 2025 am 11:33 AM

本教程演示了使用智能表单框架创建外观专业的JavaScript表单(注意:不再可用)。 尽管框架本身不可用,但原理和技术仍然与其他形式的建筑商相关。

将框阴影添加到WordPress块和元素将框阴影添加到WordPress块和元素Mar 09, 2025 pm 12:53 PM

CSS盒子阴影和轮廓属性获得了主题。让我们查看一些在真实主题中起作用的示例,以及我们必须将这些样式应用于WordPress块和元素的选项。

使用GraphQL缓存使用GraphQL缓存Mar 19, 2025 am 09:36 AM

如果您最近开始使用GraphQL或审查了其优点和缺点,那么您毫无疑问听到了诸如“ GraphQl不支持缓存”或

使您的第一个自定义苗条过渡使您的第一个自定义苗条过渡Mar 15, 2025 am 11:08 AM

Svelte Transition API提供了一种使组件输入或离开文档(包括自定义Svelte Transitions)时动画组件的方法。

优雅且酷的自定义CSS卷轴:展示柜优雅且酷的自定义CSS卷轴:展示柜Mar 10, 2025 am 11:37 AM

在本文中,我们将深入研究滚动条。我知道,这听起来并不魅力,但请相信我,一个精心设计的页面是齐头并进的

展示,不要说展示,不要说Mar 16, 2025 am 11:49 AM

您花多少时间为网站设计内容演示文稿?当您撰写新的博客文章或创建新页面时,您是在考虑

NPM命令是什么?NPM命令是什么?Mar 15, 2025 am 11:36 AM

NPM命令为您运行各种任务,无论是一次性或连续运行的过程,例如启动服务器或编译代码。

See all articles

热AI工具

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

AI Hentai Generator

AI Hentai Generator

免费生成ai无尽的。

热工具

禅工作室 13.0.1

禅工作室 13.0.1

功能强大的PHP集成开发环境

Dreamweaver CS6

Dreamweaver CS6

视觉化网页开发工具

EditPlus 中文破解版

EditPlus 中文破解版

体积小,语法高亮,不支持代码提示功能

ZendStudio 13.5.1 Mac

ZendStudio 13.5.1 Mac

功能强大的PHP集成开发环境

SublimeText3 Linux新版

SublimeText3 Linux新版

SublimeText3 Linux最新版