該教程通過使用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中文網其他相關文章!

文章討論了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
使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

mPDF
mPDF是一個PHP庫,可以從UTF-8編碼的HTML產生PDF檔案。原作者Ian Back編寫mPDF以從他的網站上「即時」輸出PDF文件,並處理不同的語言。與原始腳本如HTML2FPDF相比,它的速度較慢,並且在使用Unicode字體時產生的檔案較大,但支援CSS樣式等,並進行了大量增強。支援幾乎所有語言,包括RTL(阿拉伯語和希伯來語)和CJK(中日韓)。支援嵌套的區塊級元素(如P、DIV),

Safe Exam Browser
Safe Exam Browser是一個安全的瀏覽器環境,安全地進行線上考試。該軟體將任何電腦變成一個安全的工作站。它控制對任何實用工具的訪問,並防止學生使用未經授權的資源。

SublimeText3漢化版
中文版,非常好用

VSCode Windows 64位元 下載
微軟推出的免費、功能強大的一款IDE編輯器

DVWA
Damn Vulnerable Web App (DVWA) 是一個PHP/MySQL的Web應用程序,非常容易受到攻擊。它的主要目標是成為安全專業人員在合法環境中測試自己的技能和工具的輔助工具,幫助Web開發人員更好地理解保護網路應用程式的過程,並幫助教師/學生在課堂環境中教授/學習Web應用程式安全性。 DVWA的目標是透過簡單直接的介面練習一些最常見的Web漏洞,難度各不相同。請注意,該軟體中