5 سبتمبر 202412 دقيقةتطوير الويب
Next.js 14: Server Actions وTurbopack والميزات الجديدة
فريق Dev Ring
خبراء تطوير الويب
فريق Dev Ring
خبراء تطوير الويب
يمثل Next.js 14 خطوة مهمة مع تثبيت Server Actions وتحسينات كبيرة في الأداء بفضل المصرّف الجديد Turbopack.
تتيح Server Actions تنفيذ كود خادمي مباشرة من مكوّنات العميل، مما يبسّط إدارة النماذج وعمليات التعديل بشكل كبير.
// app/actions.ts
'use server'
export async function createPost(formData: FormData) {
const title = formData.get('title') as string;
const content = formData.get('content') as string;
// تحقق على مستوى الخادم
if (!title || !content) {
throw new Error('العنوان والمحتوى مطلوبان');
}
// إدخال في قاعدة البيانات
await db.post.create({
data: { title, content }
});
revalidatePath('/posts');
}
// app/create-post/page.tsx
import { createPost } from '../actions';
export default function CreatePost() {
return (
<form action={createPost}>
<input name="title" placeholder="العنوان" required />
<textarea name="content" placeholder="المحتوى" required />
<button type="submit">إنشاء</button>
</form>
);
}يُقدّم Turbopack مكاسب أداء كبيرة:
نهج هجين يجمع بين الرندر الثابت والديناميكي:
// صفحة مرندرة جزئيا
export default function ProductPage({ params }: { params: { id: string } }) {
return (
<div>
{/* محتوى ثابت - مسبق الرندر */}
<Header />
<Navigation />
{/* محتوى ديناميكي - عند الطلب */}
<Suspense fallback={<ProductSkeleton />}>
<ProductDetails id={params.id} />
</Suspense>
</div>
);
}إدارة أفضل للبيانات الوصفية الخاصة بـ SEO:
import type { Metadata } from 'next'
export const metadata: Metadata = {
title: 'مقالي',
description: 'وصف المقال',
openGraph: {
images: ['./opengraph-image.jpg'],
},
}للانتقال إلى Next.js 14:
يمثّل Next.js 14 نقلة كبيرة لمنظومة React، مع إمكانيات جديدة وتجربة مطور ممتازة.