useEffect és un hook de React que et permet sincronitzar un component amb un sistema extern, com per exemple una API.
On this page
Introducció
useEffect és un hook de React que et permet sincronitzar un component amb un sistema extern.
Obtenir dades
Fetch
A React, per utilitzar la funció fetch per a accedir a una API o un recurs del servidor ho has de fer amb el “hook” useEffect.
En aquest exemple obtenim una llista de posts amb la funció fetch:
const =
const response = await
const data = await response.
})
}, )
return <div className="container">
<ul className="list-group mt-5">
</ul>
</div>
)
}Activitat. Afegeix un missatge d’error:
Show solution
const =
const =
const
const response = await
return
}
const data = await response.
}
}, )
return <div className="container">
<p className="text-center m-5 p-5 fs-3">The current time is .</p>
<p className="text-center text-danger fs-4"></p>
</div>
)
}SWR
SWR és una biblioteca React Hooks per a l’obtenció de dades.
El nom “SWR” deriva de stale-while-revalidate, una estratègia d’invalidació de memòria cau HTTP popularitzada per HTTP RFC 5861 (s’obre en una nova pestanya).
SWR és una estratègia per retornar primer les dades en memòria cau (obsoletes), després enviar la sol·licitud de recuperació (revalidació), i finalment lliurar les dades actualitzades.
Amb SWR el component obtindrà constant i automàticament el darrer flux de dades. I la interfície d’usuari serà sempre ràpida i reactiva.
Instal·la swr:
En aquest exemple, el hook useSWR accepta una key que és una cadena i una funció fetcher. key és un identificador únic de les dades (normalment l’URL de l’API) i passarà al fetcher. El fetcher pot ser qualsevol funció asíncrona que retorni dades, pots utilitzar el fetch natiu o eines com Axios.
El hook retorna 2 valors: data i error, basats en l’estat de la sol·licitud.
return <Countries />
}
// created function to handle API request
const ;
const } =
// Handles error and loading state
return <p className="m-5 text-center fs-3">Failed to load</p>
return <p className="m-5 text-center fs-3">Loading...</p>
return <div>
<img key= src= width= />
))}
</div>
)
}Activitats
1.- Mostra la recepta que et mostra aquest enllaç: https://www.themealdb.com/api/json/v1/1/random.php
Show solution
return <div className="container">
<Meal />
</div>
)
}
// created function to handle API request
const ;
const data, error, isValidating,
} =
// Handles error and loading state
return <p className="m-5 text-center fs-3">Failed to load</p>
return <p className="m-5 text-center fs-3">Loading...</p>
const meal = data.
return <>
<h2 className='text-center'></h2>
<img src= />
<p className="border border-3"></p>
</>
)
}2.- Mostra alguna informació d’aquest repositori: https://rickandmortyapi.com/documentation
Per exemple, el personatge https://rickandmortyapi.com/api/character/2
Show solution
return <div className="container">
<Character />
</div>
)
}
// created function to handle API request
const ;
const data, error, isValidating,
} =
// Handles error and loading state
return <p className="m-5 text-center fs-3">Failed to load</p>
return <p className="m-5 text-center fs-3">Loading...</p>
return <>
<h2></h2>
<p></p>
<img src= />
</>
)
}