En gros, nous faisons des appels API dans la méthode du cycle de vie componentDidMount()
dans les composants de la classe React, comme ci-dessous.
componentDidMount(){
//Here we do API call and do setState accordingly
}
Mais après l’introduction des hooks dans React v16.7.0, il n’ya plus de composants de classe.
Ma question est la suivante: où devons-nous passer un appel d’API dans un composant fonctionnel avec des points d'ancrage?
Avons-nous une méthode semblable à celle de componentDidMount()
?
Lorsque vous utilisez des composants fonctionnels avec l'API hooks, vous pouvez utiliser la méthode useEffect()
pour produire des effets secondaires. Chaque fois que l'état est mis à jour à cause de ces effets secondaires, le composant sera rendu de nouveau.
import { useState, useEffect } from 'react';
function Example() {
const [count, setCount] = useState(0);
// Similar to componentDidMount and componentDidUpdate:
useEffect(() => {
// Update the document title using the browser API
document.title = `You clicked ${count} times`;
});
return (
<div>
<p>You clicked {count} times</p>
<button onClick={() => setCount(count + 1)}>
Click me
</button>
</div>
);
}
Par exemple, vous pouvez appeler setCount
dans une fonction de rappel d'une demande asynchrone. Lorsque le rappel est exécuté, l'état est mis à jour et React rend le composant à nouveau. Aussi de la documentation:
Pointe
Si vous connaissez les méthodes du cycle de vie de la classe React, vous pouvez penser d'utilisationEffect Hook sous la forme
componentDidMount
,componentDidUpdate
etcomponentWillUnmount
combiné.