使用 Prisma 開發者友好的資料庫工具構建高效能、型別安全的 Next.js 應用程式:全球**最流行的 TypeScript ORM** 和**首個無冷啟動的無伺服器資料庫**。
試用 Next.js 與 Prisma
Prisma Postgres 基於 unikernels 構建,在裸機伺服器上執行,以實現最高效能和無限可擴充套件性。
首個無伺服器資料庫,採用按需付費模式,無需基礎設施管理,並且零冷啟動。
使用客戶端渲染、伺服器端渲染和靜態站點生成來顯示您的資料。
為任何資料庫查詢新增快取策略,其結果將快取在靠近使用者的位置,以實現最佳效能和使用者體驗。
將 Prisma 與 Next.js 結合使用,可確保您的應用程式從資料庫到 React 元件都具有一致的型別。
Next.js 和 Prisma 都擁有活躍的社群,您可以在其中找到支援、有趣的活動和優秀的開發者。
Prisma 的資料庫工具非常適合構建 Next.js 應用程式。它們充當伺服器元件(靜態和動態)、伺服器操作、路由處理程式和獨立服務的資料訪問層。
Next.js 13+ 引入了資料獲取方式的根本性轉變。作為 App Router 預設設定的伺服器元件,允許您直接在元件中獲取資料,無需額外的封裝或特殊函式。這意味著您可以在元件中直接使用 Prisma,並在可能的情況下自動實現靜態生成。
以下是如何實現一個在構建時靜態生成的部落格頁面。資料獲取發生在伺服器端,HTML 在構建過程中生成一次。
// app/blog/[slug]/page.tsximport { PrismaClient } from '@prisma/client'const prisma = new PrismaClient()// Return a list of `params` to populate the [slug] dynamic segmentexport async function generateStaticParams() {const posts = await prisma.post.findMany()return posts.map((post) => ({slug: post.slug,}))}// Multiple versions of this page will be statically generated// using the `params` returned by `generateStaticParams`export default async function Page({ params }: { params: { slug: string } }) {// Fetch the post based on slugconst post = await prisma.post.findUnique({where: { slug: params.slug },})// Simple demo renderingreturn (<div><h1>{post?.title || 'Post not found'}</h1><p>{post?.content || 'No content available'}</p></div>)}
Next.js 13+ 引入了資料獲取方式的根本性轉變。作為 App Router 預設設定的伺服器元件,允許您直接在元件中獲取資料,無需額外的封裝或特殊函式。這意味著您可以在元件中直接使用 Prisma,並在可能的情況下自動實現靜態生成。
以下是如何實現一個在構建時靜態生成的部落格頁面。資料獲取發生在伺服器端,HTML 在構建過程中生成一次。
// app/blog/[slug]/page.tsximport { PrismaClient } from '@prisma/client'const prisma = new PrismaClient()// Return a list of `params` to populate the [slug] dynamic segmentexport async function generateStaticParams() {const posts = await prisma.post.findMany()return posts.map((post) => ({slug: post.slug,}))}// Multiple versions of this page will be statically generated// using the `params` returned by `generateStaticParams`export default async function Page({ params }: { params: { slug: string } }) {// Fetch the post based on slugconst post = await prisma.post.findUnique({where: { slug: params.slug },})// Simple demo renderingreturn (<div><h1>{post?.title || 'Post not found'}</h1><p>{post?.content || 'No content available'}</p></div>)}
如果您需要在 React 應用程式中使用資料庫,Next.js 和 Prisma 是**終極組合**!🚀
一個現代 SaaS 應用程式的啟動模板!next-forge 包含了 Next.js 15、認證、資料庫和 ORM、支付、文件、部落格、可觀察性、分析、電子郵件以及更多功能,為您節省了下一個 Next.js SaaS 應用程式的初始樣板程式碼。
學習在 Next.js App Router 中使用 Prisma 的最佳實踐!探索伺服器元件、伺服器操作和邊緣中介軟體,以及高效查詢、處理遷移和部署到 Vercel。完善您的資料庫工作流程並無縫擴充套件!
t3 是一個專注於簡潔性、模組化和全棧型別安全的 Web 開發技術棧。它包括 Next.js、tRPC、Tailwind、TypeScript、Prisma 和 NextAuth。
Blitz.js 是一個基於 Next.js 和 Prisma 構建的應用程式框架。它帶回了像 Ruby on Rails 這樣的伺服器渲染框架的簡潔性和約定,同時保留了開發者喜愛 React 和客戶端渲染的所有優點。