DATA FETCHING IN REACT:

image

Nel mondo dello sviluppo web, React si è distinto come una libreria ampiamente apprezzata per costruire interfacce utente accattivanti. Uno dei compiti più ricorrenti nello sviluppo web è il recupero di dati da fonti esterne per visualizzarli nella tua applicazione. In questo articolo, ci addentreremo nel mondo del recupero dati in React JS, esplorando le tecniche moderne e le migliori pratiche in voga.

Sia che tu stia sviluppando un feed di notizie, una piattaforma di e-commerce o un'app meteo, il recupero e la visualizzazione di dati da API, database o altre fonti è una necessità ineludibile come le tasse, e React offre un modo flessibile ed efficiente per gestire il recupero e la visualizzazione dei dati.

Il Metodo Tradizionale: componentDidMount

Negli albori di React, i componenti di classe erano la norma, e il modo più comune per recuperare dati era utilizzare il metodo del ciclo di vita componentDidMount. Ecco un esempio di come veniva fatto:

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 import React, { Component } from 'react'; class DataFetchingComponent extends Component { state = { data: null, }; componentDidMount() { fetch('https://api.example.com/data') .then((response) => response.json()) .then((data) => { this.setState({ data }); }); } render() { const { data } = this.state; return ( <div> {data ? ( // Render data here ) : ( // Render loading state )} </div> ); } } export default DataFetchingComponent;

Approccio Moderno: Utilizzo di useEffect e useState

I componenti funzionali, abbinati agli hook, offrono un modo più sintetico e leggibile per recuperare dati. L'hook useEffect è un protagonista in questo approccio, poiché consente di eseguire effetti collaterali nei tuoi componenti, come il recupero dei dati. Vediamo come funziona:

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 import React, { useState, useEffect } from 'react'; function DataFetchingComponent() { const [data, setData] = useState(null); useEffect(() => { fetch('https://api.example.com/data') .then((response) => response.json()) .then((data) => { setData(data); }); }, []); return ( <div> {data ? ( // Render data here ) : ( // Render loading state )} </div> ); } export default DataFetchingComponent;




In questo approccio moderno, definiamo un componente funzionale, DataFetchingComponent, e utilizziamo l'hook useState per gestire lo stato dei dati recuperati. L'hook useEffect si occupa dell'effetto collaterale del recupero dati. Fornendo un array di dipendenze vuoto ([]), ci assicuriamo che l'effetto venga eseguito una sola volta quando il componente viene montato.

Vantaggi dell'Approccio Moderno:

  1. Codice Più Pulito: I componenti funzionali e gli hook portano a un codice più pulito e leggibile, riducendo il boilerplate associato ai componenti di classe.

  2. Prestazioni Migliorate: React ottimizza i componenti funzionali e gli hook, risultando in prestazioni migliori per la tua applicazione.

  3. Test Più Facili: I componenti funzionali sono più facili da testare, in quanto sono semplici funzioni JavaScript. Puoi testare la logica all'interno del tuo componente più efficacemente.

  4. Gestione dei Dati con gli Stati: Quando recuperi dati in React, è fondamentale gestire il suo stato in modo efficiente. Questo assicura che il tuo componente si ri-renderizzi quando i dati arrivano, mostrandoli all'utente.

  5. Calcoli: Nel recupero dati in React, è importante tenere in considerazione i calcoli e l'elaborazione dei dati. Ad esempio, se stai gestendo dati numerici, potrebbe essere necessario eseguire calcoli per trasformare o aggregare i dati prima di renderizzarli nel tuo componente. Ecco un esempio su come calcolare la somma dei numeri recuperati da un'API:

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 import React, { useState, useEffect } from 'react'; function DataFetchingComponent() { const [data, setData] = useState([]); const [total, setTotal] = useState(0); useEffect(() => { fetch('https://api.example.com/data') .then((response) => response.json()) .then((data) => { setData(data); const sum = data.reduce((acc, item) => acc + item, 0); setTotal(sum); }); }, []); return ( <div> {data.length > 0 ? ( <div> <p>Data: {data.join(', ')}</p> <p>Total: {total}</p> </div> ) : ( // Render loading state )} </div> ); } export default DataFetchingComponent;

Come abbiamo visto, gli hook useEffect e useState offrono un modo più elegante ed efficiente per gestire il recupero dei dati e la gestione dello stato. Adottando questo approccio moderno, puoi scrivere codice più pulito e più manutenibile, migliorando nel contempo le prestazioni complessive delle tue applicazioni React.

In questo articolo, abbiamo coperto i concetti fondamentali del recupero dati in React e mostrato l'approccio moderno utilizzando componenti funzionali e hook. Con queste conoscenze, hai le basi per costruire applicazioni dinamiche in React, e se hai bisogno di una mano nel tuo progetto sai a chi rivolgerti :)

Buon coding a tutti!