React Academy · Lezione

React Server Components: spiegazione

Comprenda cosa sono gli RSC, in cosa differiscono dai componenti client e quando utilizzare ciascun tipo.

Lezione 1 di 413 passaggi

React Server Components: spiegazione è una lezione React Academy gratuita su CoddyKit. Questa è la lezione 1 di 4. Puoi leggere la lezione completa qui gratuitamente — poi esercitati direttamente nel browser con un editor di codice integrato e un tutor IA disponibile 24/7. Fa parte del percorso di apprendimento React Academy, e i tuoi progressi si sincronizzano tra il web e l'app CoddyKit. Il corso React Academy include 4 lezioni in totale.

Benvenuto

In questa lezione scoprirà che cosa sono i React Server Components (RSC), in che modo differiscono dai componenti client e quando utilizzare ciascun tipo.

I due mondi dei componenti

React 19 e Next.js App Router dividono i componenti in due mondi: **Server Components** (eseguono il rendering sul server, senza interattività) e **Client Components** (eseguono il rendering sia sul server sia sul client e hanno stato e gestori di eventi).

Server Components per impostazione predefinita

In Next.js App Router, ogni componente è un Server Component per impostazione predefinita. Per attivare la modalità Client Component, aggiunga 'use client' all'inizio del file.
// Server Component (default, no directive needed)
export default async function Page() {
  const data = await fetch('/api/posts').then(r => r.json());
  return <ul>{data.map(p => <li key={p.id}>{p.title}</li>)}</ul>;
}

Client Components

Aggiunga 'use client' all'inizio di un file per trasformarlo in un Client Component. I Client Components possono utilizzare useState, useEffect, i gestori di eventi e le API del browser.
'use client';
import { useState } from 'react';

export function Counter() {
  const [n, setN] = useState(0);
  return <button onClick={() => setN(n+1)}>{n}</button>;
}

Funzionalità dei Server Components

I Server Components possono: attendere query al database, leggere il file system, accedere ai segreti dell'ambiente, importare pacchetti di grandi dimensioni disponibili solo sul server ed eseguire il rendering senza inviare JavaScript al client.
// Fetch from DB directly in the component!
import { db } from '@/lib/db';

export default async function UserList() {
  const users = await db.select().from(usersTable);
  return <ul>{users.map(u => <li key={u.id}>{u.name}</li>)}</ul>;
}

Limitazioni dei Server Components

I Server Components NON possono: utilizzare useState, useEffect, gestori di eventi (onClick ecc.), API del browser (window, localStorage) o Context. Queste funzionalità richiedono 'use client'.

Composizione di Server e Client Components

Il pattern più comune è il seguente: un Server Component recupera i dati e li passa a un Client Component come props. Il server gestisce i dati; il client gestisce l'interazione.
// Server Component
export default async function Page() {
  const user = await getUser();
  return <ProfileEditor user={user} />; // client component
}

// Client Component (separate file)
'use client';
export function ProfileEditor({ user }) {
  const [name, setName] = useState(user.name);
  return <input value={name} onChange={e => setName(e.target.value)} />;
}

La regola del confine client

Dopo aver contrassegnato un file con 'use client', anche tutti i componenti importati vengono trattati come client components. Il confine tra server e client è definito a livello di file.

JavaScript zero per i Server Components

I Server Components eseguono il rendering in HTML sul server. Il loro codice non viene MAI inviato al browser. Questo riduce significativamente le dimensioni del bundle JavaScript.

Server Components e SSR a confronto

L'SSR tradizionale esegue il rendering di una pagina completa in HTML, ma invia al client tutto il codice dei componenti per l'hydration. I Server Components non inviano mai il proprio codice al client: inviano solo l'output del rendering.

Verifica rapida

Quale direttiva aggiunge a un file per trasformarlo in un React Client Component in Next.js App Router?

Riepilogo

I Server Components vengono eseguiti sul server, possono accedere a database e segreti e non inviano JavaScript al client. I Client Components aggiungono 'use client' e supportano stato, effetti e gestori di eventi. Li componga così: il server recupera i dati, il client gestisce l'interazione.

Prossimo argomento

Prossima lezione: **L'hook use() per le risorse asincrone** — leggerà Promise e context durante il rendering con l'hook use() di React 19.
Gratis per iniziare

Impara React con un tutor IA — gratis

Scrivi ed esegui vero codice nel tuo browser, ricevi aiuto istantaneo da un tutor IA disponibile 24/7, e riprendi da dove hai lasciato sul web o nell'app.

Corsi
88
Lezioni
324

Domande Frequenti

La lezione «React Server Components: spiegazione» è gratuita?

Sì — il testo completo di «React Server Components: spiegazione» è gratuito qui sul web. Per esercitarvi in modo interattivo (un editor di codice integrato e un tutor IA 24/7) e sbloccare il resto del corso React Academy, passa a CoddyKit PRO. Il corso React Academy include 4 lezioni in totale.

Cosa imparerò in «React Server Components: spiegazione»?

Comprenda cosa sono gli RSC, in cosa differiscono dai componenti client e quando utilizzare ciascun tipo. Eserciti React Academy con codice pratico che esegui direttamente nel browser, e un tutor IA 24/7 risponde alle tue domande mentre lavori sulla lezione.

Ho bisogno di esperienza per iniziare React Academy?

Non è richiesta alcuna esperienza precedente. React Academy su CoddyKit è strutturato per principianti e studenti avanzati, quindi puoi iniziare da qui o dall'inizio e procedere al tuo ritmo. Questa è la lezione 1 di 4.

Quanto tempo richiede la lezione «React Server Components: spiegazione»?

La maggior parte delle lezioni CoddyKit richiede circa 5–10 minuti. Ogni lezione è breve e interattiva, quindi fai progressi costanti e riprendi esattamente da dove hai lasciato su web e app.

Posso scrivere ed eseguire codice in questa lezione React Academy?

Sì. Ogni lezione React Academy include un editor di codice integrato, quindi scrivi ed esegui codice reale direttamente nel tuo browser e ricevi feedback istantaneo dall'IA — nessuna configurazione locale necessaria.

Tutte le lezioni di questo corso

  1. React Server Components: spiegazione
  2. L'hook use() per le risorse asincrone
  3. React Actions e useActionState
  4. useOptimistic per feedback immediati
← Torna a React Academy