Skip to content
Snippets Groups Projects

Compare revisions

Changes are shown as if the source revision was being merged into the target revision. Learn more about comparing revisions.

Source

Select target project
No results found
Select Git revision
  • main
  • v0
  • v0.5
  • v1
  • v2
  • v3
  • v3.1
  • v3.2
  • v4
  • v4.5
  • v4.6
  • v4.6-problem
  • v5
  • v5.1
  • v5.2
  • v5.3
  • v5.5
  • v5.6
  • v5.7
  • v5.8
  • v5.9
  • v6
  • v6.1
  • v6.2
  • v7
  • v7.1
26 results

Target

Select target project
  • melissa.belkacemi.etu/intro-react
  • sofia.belkacemi.etu/intro-react
  • javascript/intro-react
3 results
Select Git revision
  • main
  • v0
  • v0.5
  • v1
  • v2
  • v3
  • v3.1
  • v3.2
  • v4
  • v4.5
  • v4.6
  • v4.6-problem
  • v5
  • v5.1
  • v5.2
  • v5.3
  • v5.5
  • v5.6
  • v5.7
  • v5.8
  • v5.9
  • v6
  • v6.1
  • v6.2
  • v7
  • v7.1
26 results
Show changes
Commits on Source (2)
...@@ -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.
......
import { useState, useEffect } from 'react'; import { useState, useEffect } from 'react';
// import stysheet defining style specific to this component
import '../assets/style/person.css'; import '../assets/style/person.css';
/*
* define a component that uses props, props is a javascript object
*/
const Person = ( { name = 'Anonymous', age, started, delay } ) => { 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 :
......
...@@ -13,7 +13,7 @@ const PersonListing = props => { ...@@ -13,7 +13,7 @@ const PersonListing = props => {
const [persons, setPersons ] = useState([]); const [persons, setPersons ] = useState([]);
const fetchData = async () => { const fetchData = async () => {
const data = await mockFetch('http://source.of.data/persons',1000); const data = await mockFetch('http://source.of.data/persons',10);
setPersons( data ); setPersons( data );
} }
......
...@@ -8,6 +8,11 @@ const persons = [ ...@@ -8,6 +8,11 @@ const persons = [
id: 'A002', id: 'A002',
name: "Bilbo Baggins", name: "Bilbo Baggins",
age: 111 age: 111
},
{
id: 'A003',
name: "Frodo Baggins",
age: 33
} }
]; ];
......
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);
} }
......