Next.js 15 Fullstack (App Router + Server Actions) · درس

جلب البيانات في RSC

تعلّم كيفية جلب البيانات بكفاءة مباشرةً داخل Server Components لتقليل حزم JavaScript من جانب العميل

الدرس 2 من 410 خطوة

جلب البيانات في RSC درس مجاني في Next.js 15 Fullstack (App Router + Server Actions) على CoddyKit. هذا هو الدرس 2 من أصل 4. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7. هذا الدرس جزء من مسار التعلم في Next.js 15 Fullstack (App Router + Server Actions)، وتقدمك يتزامن عبر الويب وتطبيق CoddyKit. تتضمن دورة Next.js 15 Fullstack (App Router + Server Actions) 4 دروس في المجموع.

بعض أجزاء هذا الدرس لم تُترجم بعد وتظهر باللغة الإنجليزية.

Why Fetch Data on the Server?

Welcome to data fetching in Next.js Server Components! Traditionally, data fetching often happened on the client-side, leading to heavier JavaScript bundles.

Server Components (RSCs) change this by allowing you to fetch data directly on the server, before any JavaScript is sent to the browser.

How Server Components Fetch Data

In a Server Component, you can use standard JavaScript async/await syntax with the native fetch API to get data.

  • No need for client-side hooks like useEffect.
  • Data fetching runs entirely on the server.
  • The fetched data is rendered into HTML.

A Basic Data Fetch Scenario

Imagine fetching a list of products or user profiles. In a Next.js Server Component, your component function can be marked as async, allowing you to await the result of a fetch call.

This means your component receives the data before it's even sent to the browser for rendering.

Runnable Fetch Example

Here's a simplified Node.js example demonstrating how fetch works with async/await, similar to how it would operate within a Next.js Server Component.

Run it to see how data is retrieved from an external API.

async function fetchData() {
  try {
    const response = await fetch("https://jsonplaceholder.typicode.com/todos/1");
    if (!response.ok) {
      throw new Error(`HTTP error! status: ${response.status}`);
    }
    const data = await response.json();
    console.log("Fetched data:", data);
  } catch (error) {
    console.error("Error fetching data:", error);
  }
}

// In a Next.js Server Component, this would be called
// directly inside your async component function.
fetchData();

The Role of `await` in RSCs

When you await a fetch call in an RSC, the server pauses rendering that part of the component until the data arrives. Once the data is ready, the component continues rendering.

This ensures the initial HTML sent to the client already contains all the necessary data, improving perceived load times.

Keeping Server-Side Secrets

One major advantage of fetching data in Server Components is that server-only logic, like database queries or API keys, never leaves the server.

This significantly enhances security, as sensitive information is not exposed to the client's browser.

Leaner Client Bundles

By fetching data on the server, the client doesn't need to download extra JavaScript bundles for data fetching libraries or complex data hydration logic.

This results in:

  • Faster initial page loads.
  • Less JavaScript for the browser to parse and execute.
  • Improved performance, especially on slower networks.

Common Data Sources for RSCs

Server Components can fetch data from various sources:

  • External APIs: Using fetch for REST or GraphQL endpoints.
  • Databases: Directly querying a database (e.g., with Prisma client).
  • File System: Reading local files (e.g., Markdown content).

The key is that these operations happen on the server.

Check Your Understanding

Which of the following is a primary benefit of fetching data directly within Next.js Server Components?

Data Fetching in RSCs Recap

In this lesson, we explored how to fetch data efficiently using Next.js Server Components.

  • RSCs use async/await and fetch to get data on the server.
  • This keeps sensitive logic server-side and reduces client-side JavaScript.
  • The result is faster initial page loads and improved security.

Next, we'll look at interactivity with Client Components!

البدء مجانًا

تعلم TypeScript مع معلم ذكاء اصطناعي — مجانًا

اكتب وقم بتشغيل أكوادك الفعلية في المتصفح، واحصل على مساعدة فورية من معلم ذكاء اصطناعي متاح 24/7، واستمر من حيث توقفت على الويب أو في التطبيق.

الدورات
22
الدروس
88

الأسئلة الشائعة

هل درس «جلب البيانات في RSC» مجاني؟

نعم — نص درس «جلب البيانات في RSC» كامل متاح مجاناً هنا على الويب. لتمرينه بشكل تفاعلي (محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7) وفتح باقي دورة Next.js 15 Fullstack (App Router + Server Actions)، انتقل إلى CoddyKit PRO. تتضمن دورة Next.js 15 Fullstack (App Router + Server Actions) 4 دروس في المجموع.

ماذا ستتعلم في «جلب البيانات في RSC»؟

تعلّم كيفية جلب البيانات بكفاءة مباشرةً داخل Server Components لتقليل حزم JavaScript من جانب العميل تتمرن على Next.js 15 Fullstack (App Router + Server Actions) مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.

هل أحتاج إلى خبرة سابقة لأبدأ Next.js 15 Fullstack (App Router + Server Actions)؟

لا تُشترط خبرة سابقة. Next.js 15 Fullstack (App Router + Server Actions) على CoddyKit منظم للمبتدئين حتى المتقدمين، لذا يمكنك البدء من هنا أو من البداية والتقدم بسرعتك الخاصة. هذا هو الدرس 2 من أصل 4.

كم من الوقت يستغرق درس «جلب البيانات في RSC»؟

معظم دروس CoddyKit تستغرق حوالي 5–10 دقائق. كل منها موجز وتفاعلي، لذا تحرز تقدماً مستمراً وتستأنف من حيث توقفت عبر الويب والتطبيق.

هل يمكنني كتابة وتشغيل أكواد في درس Next.js 15 Fullstack (App Router + Server Actions) هذا؟

نعم. كل درس في Next.js 15 Fullstack (App Router + Server Actions) يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.

جميع الدروس في هذه الدورة

  1. فهم RSC وRCC
  2. جلب البيانات في RSC
  3. التفاعلية باستخدام RCC
  4. أنماط التركيب لمكوّنات الخادم والعميل
← العودة إلى Next.js 15 Fullstack (App Router + Server Actions)