Sébastien TIMONER
Esperto nello sviluppo web e nella gestione di team tecnici, mi specializzo nella creazione e ottimizzazione di soluzioni digitali performanti. Grazie a una profonda padronanza di tecnologie moderne come React.js, Node.js, TypeScript, Symfony e Zephyr OS per IoT, garantisco il successo di progetti SaaS e IoT complessi, dalla progettazione alla messa in produzione, per aziende di diversi settori, all'interno di offroadLabs.
In offroadLabs, offro servizi di sviluppo su misura, combinando competenza tecnica e approccio collaborativo. Che si tratti di creare una soluzione SaaS innovativa, sviluppare sistemi IoT con Zephyr OS, modernizzare un'applicazione esistente o accompagnare la crescita professionale di un team, mi impegno a fornire soluzioni robuste e performanti, adattate alle esigenze specifiche di ogni progetto.
Sono disponibile per incarichi intorno ad Aix-en-Provence o in full remote.
Nei progetti React, spesso usiamo useEffect
per riflesso, ma questo approccio può talvolta complicare inutilmente il codice. In questo articolo, vedremo i casi in cui non hai bisogno di useEffect
e come ottimizzare il tuo codice evitando di utilizzarlo impropriamente.
useEffect
L'hook useEffect
è utile per gestire effetti collaterali come sottoscrizioni o operazioni che devono essere eseguite al di fuori del flusso di rendering principale. Tuttavia, alcuni casi d'uso comuni possono essere semplificati senza useEffect
.
useEffect
Spesso si vuole inizializzare uno stato basato su props o valori iniziali al montaggio del componente. Invece di usare useEffect
per impostare questo stato, puoi farlo direttamente con useState
, rendendo il codice più chiaro e prevenendo chiamate inutili.
Cattiva pratica con useEffect
:
typescript
Buona pratica senza useEffect
:
Qui, possiamo semplicemente inizializzare lo stato greeting
usando una funzione in useState
:
typescript
Questo approccio rende il codice più conciso ed evita di aggiungere un effetto superfluo che potrebbe rallentare la tua applicazione.
Se hai bisogno di calcolare un valore in base allo stato o alle props, prova a utilizzare una variabile derivata o un memo
invece di useEffect
.
Esempio con useEffect
(da evitare):
typescript
Soluzione senza useEffect
:
Qui, il valore total
può essere calcolato direttamente durante il rendering, senza dipendere da useEffect
:
typescript
Questo metodo non solo è più pulito, ma elimina la necessità di gestire stati aggiuntivi.
useMemo
per calcoli pesantiPer calcoli costosi o dipendenti da più variabili, usa useMemo
per evitare di rieseguire la logica ad ogni rendering, senza dover utilizzare useEffect
per gestire lo stato.
Esempio con useEffect
:
typescript
Approccio ottimizzato con useMemo
:
typescript
Qui, useMemo
permette di memorizzare il risultato senza dover gestire un effetto, rendendo il componente più prevedibile e performante.
Per gestire gli input controllati, non hai bisogno di usare useEffect
per sincronizzare i valori degli input con lo stato del componente genitore. Usa semplicemente le props e le callback per gestire questo stato efficacemente.
Esempio con useEffect
(inutile):
typescript
Soluzione senza useEffect
:
typescript
L'uso diretto delle props semplifica il codice e migliora le prestazioni riducendo il numero di aggiornamenti di stato non necessari.
Se vuoi applicare stili o classi basati sullo stato, spesso è inutile passare attraverso useEffect
. React gestisce molto bene questo tipo di sincronizzazione durante il rendering.
Esempio con useEffect
:
typescript
Soluzione senza useEffect
:
typescript
Evitare useEffect
permette spesso di semplificare il codice e migliorare le prestazioni della tua applicazione React. Rivalutando le ragioni per utilizzare un effetto, potrai creare componenti più chiari ed evitare errori legati a dipendenze mal configurate. La chiave è identificare i casi in cui lo stato, i valori derivati o useMemo
sono sufficienti per soddisfare le tue esigenze senza effetti collaterali.