📋 محتويات الصفحة
📖 الوصف
RedwoodJS هو إطار عمل full-stack JavaScript مبني على React، GraphQL، و Prisma. يوفر حلاً كاملاً يشمل الواجهة الأمامية (React)، الواجهة الخلفية (GraphQL API)، وقاعدة البيانات (Prisma ORM). يستخدم Netlify أو Vercel للـ deployment. RedwoodJS يهدف لتبسيط بناء تطبيقات Jamstack مع TypeScript end-to-end، ...
🎯 يستخدم في
مجالات استخدام هذه الأداة
تطبيقات Jamstack كاملة
تطبيقات SaaS
لوحات التحكم الإدارية
تطبيقات مع GraphQL API
startups والمشاريع الصغيرة
✨ المميزات
أبرز مميزات هذه الأداة
Full-stack framework (React + GraphQL + Prisma)
GraphQL API مدمج
Prisma ORM لإدارة قاعدة البيانات
Authentication مدمج (Auth0
Netlify
إلخ)
TypeScript end-to-end
CLI generators
Testing مدمج
Deploy لـ Netlify/Vercel
⚠️ العيوب
نقاط يجب مراعاتها
تعقيد في الإعداد للمشاريع الكبيرة
GraphQL layer قد يكون overkill
حجم الحزمة كبير
أقل شهرة من Next.js
أداء أبطأ من الحلول المتخصصة
🔄 البدائل
أدوات بديلة يمكنك استخدامها
💻 مثال على الاستخدام
كيفية استخدام هذه الأداة
// web/src/pages/PostsPage/PostsPage.tsx
import { useQuery } from '@redwoodjs/web';
import { Link, routes } from '@redwoodjs/router';
const POSTS_QUERY = gql`
query PostsQuery {
posts {
id
title
createdAt
}
}
`;
export default function PostsPage() {
const { data, loading } = useQuery(POSTS_QUERY);
if (loading) return <div>جاري التحميل...</div>;
return (
<div>
<h1>المقالات</h1>
<ul>
{data.posts.map(post => (
<li key={post.id}>
<Link to={routes.post({ id: post.id })}>
{post.title}
</Link>
</li>
))}
</ul>
</div>
);
}
// api/src/graphql/posts.sdl.ts
export const schema = gql`
type Post {
id: Int!
title: String!
body: String!
createdAt: DateTime!
}
type Query {
posts: [Post!]!
post(id: Int!): Post
}
input CreatePostInput {
title: String!
body: String!
}
type Mutation {
createPost(input: CreatePostInput!): Post!
}
`;
// api/src/services/posts.ts
import { db } from 'src/lib/db';
export const posts = () => db.post.findMany();
export const post = ({ id }: { id: number }) =>
db.post.findUnique({ where: { id } });
export const createPost = ({ input }: { input: CreatePostInput }) =>
db.post.create({ data: input });
📚 أدوات أخرى في Meta-Frameworks
قد يعجبك أيضاً
Analog
إطار عمل Angular كامل (Full-Stack Angular Framework)
Astro
⭐إطار عمل للمحتوى (Content-Focused Framework)
Gatsby
⭐إطار عمل ثابت مع بيانات GraphQL (Static Site Generator with GraphQL)
Next.js
⭐إطار عمل React شامل (React Meta-Framework)
Nuxt
⭐إطار عمل Vue شامل (Vue Meta-Framework)
Qwik City
إطار عمل Qwik شامل (Qwik Meta-Framework)