Skip to content
Snippets Groups Projects
Commit 52593542 authored by Jean-Christophe's avatar Jean-Christophe
Browse files

useEffect et dépendances

parent 438cde06
Branches
Tags
No related merge requests found
...@@ -52,7 +52,8 @@ où `tag` peut prendre comme valeur : ...@@ -52,7 +52,8 @@ où `tag` peut prendre comme valeur :
voir `/src/components/star.jsx` (et `/src/components/person.component.jsx`) voir `/src/components/star.jsx` (et `/src/components/person.component.jsx`)
* `v5.5` : cycle de vie du composant : utilisation du hook `useEffect` pour agir au moment de la création du composant : juste après le premier rendu. * `v5.5` : cycle de vie du composant : utilisation du hook `useEffect` pour agir au moment de la création du composant : juste après le premier rendu.
voir `/src/components/personListing.component.jsx` ainsi que `/src/components/person.component.jsx` voir `/src/components/personListing.component.jsx` ainsi que `/src/components/person.component.jsx`
* `v 5.6` : utilisation des dépendances du hook `useEffect` pour déclencher son effet
voir `/src/components/person.component.jsx`
Faire ```git checkout main``` pour revenir à la version finale. Faire ```git checkout main``` pour revenir à la version finale.
......
...@@ -6,12 +6,11 @@ const Person = ( { name = 'Anonymous', age, started, delay } ) => { ...@@ -6,12 +6,11 @@ const Person = ( { name = 'Anonymous', age, started, delay } ) => {
const [ currentAge, setCurrentAge ] = useState(age); const [ currentAge, setCurrentAge ] = useState(age);
useEffect( () => { useEffect( () => {
if (started) { if (started) {
setInterval( () => setCurrentAge( previousCurrentAge => previousCurrentAge + 1 ), delay); setInterval( () => setCurrentAge( previousCurrentAge => previousCurrentAge + 1 ), delay);
}
}, []); }, [started]);
return ( return (
<div className="person">Here is : <div className="person">Here is :
......
import { createRoot } from 'react-dom/client'; import { createRoot } from 'react-dom/client';
import PersonListingController from '../components/personListingController.component.jsx'; import PersonListingController from '../components/personListingController.component.jsx';
import { StrictMode } from 'react';
const bootstrapReact = () => { const bootstrapReact = () => {
const root = createRoot(document.getElementById('insertReactHere')); const root = createRoot(document.getElementById('insertReactHere'));
const component = <PersonListingController />; const component = <StrictMode><PersonListingController /></StrictMode>;
root.render(component); root.render(component);
} }
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment