📋 محتويات الصفحة
📖 الوصف
SvelteKit هو إطار العمل الرسمي لبناء تطبيقات Svelte كاملة. يُقدم نظام توجيه قائم على الملفات، وdata loading، وserver-side rendering (SSR) محسّن. يستخدم Vite كأداة بناء مما يوفر تجربة تطوير سريعة. SvelteKit يدعم file-based routing، form actions، وhooks. يوفر نهج بسيط وفعال لبناء تطبيقات Svelte مع مي...
🎯 يستخدم في
مجالات استخدام هذه الأداة
تطبيقات Svelte كاملة
مواقع التجارة الإلكترونية
تطبيقات Progressive Web Apps
لوحة التحكم الإدارية
تطبيقات متعددة الصفحات (MPA)
✨ المميزات
أبرز مميزات هذه الأداة
File-based routing
Server-Side Rendering (SSR)
Static Site Generation (SSG)
Form actions (progressive enhancement)
Hooks (server و client)
Vite-powered (سرعة عالية)
TypeScript مدمج
Adapter system (Netlify
Vercel
Node
إلخ)
⚠️ العيوب
نقاط يجب مراعاتها
مجتمع أصغر من Next.js
موارد تعليمية أقل
بعض المفاهيم خاصة بـ SvelteKit
أقل plugins من Next.js
🔄 البدائل
أدوات بديلة يمكنك استخدامها
💻 مثال على الاستخدام
كيفية استخدام هذه الأداة
<!-- src/routes/+page.server.ts -->
import type { PageServerLoad } from './$types';
export const load: PageServerLoad = async () => {
const posts = await db.post.findMany();
return { posts };
};
<!-- src/routes/+page.svelte -->
<script lang="ts">
import type { PageData } from './$types';
export let data: PageData;
</script>
<h1>آخر المقالات</h1>
<ul>
{#each data.posts as post}
<li>
<a href="/posts/{post.id}">
<h2>{post.title}</h2>
</a>
</li>
{/each}
</ul>
<!-- src/routes/posts/[id]/+page.server.ts -->
import type { PageServerLoad, Actions } from './$types';
import { fail } from '@sveltejs/kit';
export const load: PageServerLoad = async ({ params }) => {
const post = await db.post.findUnique({ where: { id: params.id } });
return { post };
};
export const actions: Actions = {
update: async ({ request, params }) => {
const formData = await request.formData();
const title = formData.get('title');
await db.post.update({ where: { id: params.id }, data: { title } });
return { success: true };
}
};
<!-- src/routes/posts/[id]/+page.svelte -->
<script lang="ts">
import type { PageData, ActionData } from './$types';
export let data: PageData;
export let form: ActionData;
</script>
<form method="POST" action="?/update">
<input name="title" value={data.post.title} />
<button type="submit">حفظ</button>
</form>
📚 أدوات أخرى في 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)