📋 محتويات الصفحة
📖 الوصف
Qwik City هو طبقة التطبيق لـ Qwik تُقدم نظام توجيه قائم على الملفات، وdata loaders، وserver functions. مشابه لـ Next.js أو Nuxt لكن مبني على مفهوم Resumability الخاص بـ Qwik. Qwik City يوفر file-based routing، route loaders (data fetching)، وactions (form submissions). يدعم streaming و resumability...
🎯 يستخدم في
مجالات استخدام هذه الأداة
تطبيقات Qwik كاملة
مواقع التجارة الإلكترونية
تطبيقات تتطلب أداء عالي
Progressive Web Apps
Edge-deployed applications
✨ المميزات
أبرز مميزات هذه الأداة
Resumability (لا hydration)
File-based routing
Route loaders و actions
Server functions (server$)
Streaming SSR
Edge-deployment ready
TypeScript مدمج
Instant interactivity
⚠️ العيوب
نقاط يجب مراعاتها
إطار جديد نسبياً
نظام بيئي صغير
مفهوم Resumability قد يكون غريباً
موارد تعليمية محدودة
🔄 البدائل
أدوات بديلة يمكنك استخدامها
💻 مثال على الاستخدام
كيفية استخدام هذه الأداة
// src/routes/index.tsx
import { component$ } from '@builder.io/qwik';
import { routeLoader$ } from '@builder.io/qwik-city';
export const useGetPosts = routeLoader$(async () => {
const posts = await db.post.findMany();
return posts;
});
export default component$(() => {
const posts = useGetPosts();
return (
<div>
<h1>المقالات</h1>
<ul>
{posts.value.map(post => (
<li key={post.id}>
<a href={`/posts/${post.id}`}>{post.title}</a>
</li>
))}
</ul>
</div>
);
});
// src/routes/posts/[id]/index.tsx
import { component$ } from '@builder.io/qwik';
import { routeLoader$, server$ } from '@builder.io/qwik-city';
export const useGetPost = routeLoader$(async ({ params }) => {
const post = await db.post.findUnique({
where: { id: params.id }
});
return post;
});
export const updatePost = server$(async (id: string, data: any) => {
await db.post.update({ where: { id }, data });
});
export default component$(() => {
const post = useGetPost();
return (
<article>
<h1>{post.value?.title}</h1>
<p>{post.value?.content}</p>
</article>
);
});
📚 أدوات أخرى في 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)
RedwoodJS
إطار عمل Jamstack كامل (Full-Stack Jamstack Framework)