0Pricing
React Academy · Lezione

Cosa fa StrictMode

Comprendere la doppia invocazione e gli avvisi sulle API deprecate durante lo sviluppo.

Cosa fa StrictMode è 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 imparerà che cosa fa React.StrictMode durante lo sviluppo, quali avvisi mostra e come aiuta a scrivere codice React più sicuro.

Che cos'è StrictMode?

StrictMode è un componente speciale di React che racchiude una parte dell'albero e abilita controlli aggiuntivi **solo durante lo sviluppo**. Non ha alcun effetto sulla build di produzione.
import { StrictMode } from 'react';
import { createRoot } from 'react-dom/client';

createRoot(document.getElementById('root')).render(
  <StrictMode>
    <App />
  </StrictMode>
);

Doppia invocazione del ciclo di vita

In StrictMode, durante lo sviluppo React chiama intenzionalmente due volte la funzione del componente e alcuni metodi del ciclo di vita. Questo serve a individuare gli effetti collaterali che non vengono ripuliti correttamente.

Perché la doppia invocazione?

React 18 e versioni successive può rimontare i componenti in futuro, ad esempio per il fast refresh e l'API Offscreen. La doppia invocazione durante lo sviluppo simula questo comportamento, consentendo di individuare problemi come sottoscrizioni che si accumulano o modifiche al DOM eseguite due volte.

Montaggio, smontaggio e rimontaggio dell'effetto

Con StrictMode in React 18, ogni useEffect viene eseguito, ripulito e rieseguito durante il montaggio iniziale. Se la funzione di pulizia è corretta, la doppia esecuzione non causa problemi. Se l'app si interrompe, la pulizia è assente o errata.
useEffect(() => {
  const id = setInterval(() => setTick(t => t + 1), 1000);
  return () => clearInterval(id); // cleanup required!
}, []);

Rilevare le API obsolete

StrictMode mostra un avviso quando il codice usa API React obsolete, come `componentWillMount`, `componentWillReceiveProps` e le ref stringa. Questi avvisi appaiono nella console del browser come avvisi gialli.

Avviso relativo alla Legacy Context API

Se una libreria di terze parti usa la Legacy Context API (`childContextTypes` / `getChildContext`), StrictMode mostra un avviso. Questo indica che la libreria deve essere aggiornata alla moderna API `React.createContext`.

È sicuro abilitarlo nelle app esistenti

Può racchiudere solo una parte dell'albero dei componenti in StrictMode per abilitarlo gradualmente in un'app esistente. Inizi dalle sezioni nuove e lo estenda man mano che risolve gli avvisi.
function App() {
  return (
    <>
      <LegacyPart />  {/* not wrapped */}
      <StrictMode>
        <NewFeature />
      </StrictMode>
    </>
  );
}

Nessuna differenza visiva

StrictMode non esegue il rendering di alcuna interfaccia visibile. È esclusivamente uno strumento di sviluppo. Non vedrà elementi aggiuntivi nel DOM, ma solo ulteriori avvisi nella console e la doppia invocazione.

Lo abiliti fin dal primo giorno

La procedura consigliata è abilitare StrictMode fin dall'inizio del progetto. Risolvere subito i problemi causati dalla doppia invocazione è molto meno costoso che scoprirli in seguito, quando la base di codice è diventata grande.

Verifica rapida

Qual è lo scopo della doppia invocazione delle funzioni dei componenti da parte di React StrictMode?

Riepilogo

StrictMode è uno strumento di sviluppo a costo zero che invoca due volte rendering ed effetti per individuare il codice impuro, mostra avvisi sulle API obsolete e prepara l'app alle funzionalità future di React.

Prossimo argomento

Prossima lezione: **Componenti puri ed evitare gli effetti collaterali durante il rendering** — imparerà a scrivere funzioni di rendering prive di modifiche e letture esterne.

Domande Frequenti

La lezione «Cosa fa StrictMode» è gratuita?

Sì — il testo completo di «Cosa fa StrictMode» è 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 «Cosa fa StrictMode»?

Comprendere la doppia invocazione e gli avvisi sulle API deprecate durante lo sviluppo. 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 «Cosa fa StrictMode»?

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. Cosa fa StrictMode
  2. Componenti puri ed evitare effetti collaterali nel render
  3. Best practice per key e ref
  4. Struttura delle cartelle e convenzioni di denominazione
← Torna a React Academy