React:State
Exemple
Créer la component TestState permettant d'afficher les valeurs de sa State :
import React, { Component } from "react";
class TestState extends Component {
/*le constructeur de la component*/
/*props :récupérer les données envoyées par le prent s'elles existent*/
constructor(props) {
/*Envoyer les données props à la classe mère dans ce cas Component*/
super(props);
//Créer une state
this.state = {
produit:{
id: "1",
nom: "produit1",
qteStock: 40,
prix: 15.3
},
villes:['Casa','Paris','madrid'],
listeClient:[
{nom:'client1',tel:'064454'},
{nom:'client2',tel:'047858'},
{nom:'client3',tel:'045212'}
]
};
}
render() {
return (
<div>
<fieldset>
<legend>Produit Détails</legend>
<table>
<tr>
<td>Id</td>
<td>{this.state.produit.id}</td>
</tr>
<tr>
<td>Nom</td>
<td>{this.state.produit.nom}</td>
</tr>
<tr>
<td>QteStock</td>
<td>{this.state.produit.qteStock}</td>
</tr>
<tr>
<td>Prix</td>
<td>{this.state.produit.prix}</td>
</tr>
</table>
</fieldset>
<fieldset>
<legend>Liste Villes</legend>
<ol>
{
this.state.villes.map((ville)=>
{
return(
<li>{ville}</li>
)
}
)
}
</ol>
</fieldset>
<fieldset>
<legend>Liste Client</legend>
<table>
<thead>
<tr>
<th>Nom</th>
<th>Tel</th>
</tr>
</thead>
<tbody>
{this.state.listeClient.map((client)=>
{
return (
<tr>
<td>{client.nom}</td>
<td>{client.tel}</td>
</tr>)
})}
</tbody>
</table>
</fieldset>
</div>);
}
}
export default TestState;
App.js
/*Importer le Css */
import React from 'react';
import './App.css';
/*Importer TestState Component */
import TestState from './components/TestState/TestState';
class App extends React.Component{
constructor(props)
{
/*Appeler le constructeur del classeMere React.Component */
super(props);
}
render()
{
return (
<div>
<TestState />
</div>
);
}
}
export default App;
Utilisation des component fonctionnelle
- Composants fonctionnels:
- Ils sont définis comme des fonctions JavaScript.
- Ils ne possèdent pas d'état local (
state
), mais peuvent utiliser le hookuseState
pour gérer un état local. - Ils n'ont pas de méthodes de cycle de vie propres à la classe, mais peuvent utiliser les hooks comme
useEffect
pour effectuer des effets de bord. - Ils sont plus légers et plus simples à comprendre que les composants de classe.
- Ils favorisent l'utilisation de la programmation fonctionnelle, ce qui peut rendre le code plus lisible et plus facile à tester.
Les composants de classe (Class Components) et les composants fonctionnels (Functional Components) sont deux approches pour créer des composants React, et chacune a ses propres caractéristiques et avantages.
- Composants de classe:
- Ils sont définis en utilisant la syntaxe de classe JavaScript.
- Ils étendent la classe
React.Component
ouReact.PureComponent
. - Ils peuvent avoir un état local (state) géré par
this.state
et sont dotés de méthodes de cycle de vie telles quecomponentDidMount
,componentDidUpdate
, etc. - L'utilisation de
this
est courante pour accéder aux props et à l'état (this.props
etthis.state
). - Ils permettent la définition de méthodes spécifiques au composant.
Exemple 2
Créer un compteur avec deux button + et button -