ReactJS+NodeJS

React: Intoduction

1.Introduction,istallation

Components

2.a>Components 2.b> Constructeur et propriétés 2.c> Components:Exemples

State,filter , map ...

4.a> State (data) 4.b> State (change data) 4.c> State (Formulaire)
Exercice 1:Vente Produit Exercice 2:Note Stagiaire Exercice 3:Quizz Exercice 4:Gestion matchs Exercice 5:Crud Produit

Props

5a.Props introduction Exercice 1

Exercices

6.a Nombre Random 6.b Game Pile ou Face 6.c Calculatrice 6.c Quizz 6.c Les Styles Dynamiques 6.c Array Object Filter

..

7.React Hooks

Exercices

Exercice1: Client Crud Exercice2 :Filter Teams Exercice3 : Multi-select

Props dans Composant fonctionnel

Exemples Exercice1 Exercice2 Exercice3

Routage

7.Routage 8.Routage :public and restricted

Axios ,Fetch, Api

CRUD application

Redux,Redux Toolkit

Cours Redux

Exercices Redux

Exercice1 Social App Exercice1 WhatsApp App Exercice2 Restaurant App Exercice3 Student App Exercice4 Income ,Expense App Exercice5 Bank App

Exercices

LocalStorage Weather Api ToDo et LocalStorage

React+ionic

Ionic Create project 4.React Outils utiles 5.Lifecycle Methods 6.JSX

Gestion Ventes

Produit CRUD

6.Form :Ajouter un produit 8.Liste produits 9.Pagination 10.Liste produits +Pagination 11.Liste produits +Datatable 11.Liste produits +load more 12.Supprimer un produit 14.Details d'un produit 15.Recherche et Autocomplete

Reacts:Utils

Gestion des erreurs Variables d'environment Cookies Internationalization proptypes Form validation React Animation Fragment Google Maps

Utilisateur CRUD

18.Inscription upload file 19.Connexion et Les sessions 19.Connexion: JWT Token

Ventes CRUD

17.Vendre un produit 18.Facture Generate PDF 19.Statisques Charts

Redux





React:State(Formulaire)

Créer un formulaire d'inscription d'un étudiant

npx crcf components/Formulaire

Formulaire.js

import React from "react";
class Formulaire extends React.Component{
    constructor(props)
    {
        super(props)
        this.state={
            //un objet qui permet de stocker les valeurs d'un stagiaire
            stagiaire:{
                nom:'',
                prenom:''
            },
            //stocker et afficher la liste des stagiaires ajouté
            listeStagiaires:[]  
        }
       
       
    }
   
    //récupéer la valeur de l'input changé la stocké dans la variable du state stagiaire
    //event : un objet qui contient des information sur l'objet DOM changé comme:
    //event.target.value,event.target.name,.....
    getValue=(event)=>{
        this.setState({
            stagiaire:{
                ...this.state.stagiaire,//permet de récupérer les autres attributs de l'objet stagiaire
                [event.target.name]:event.target.value
                //[event.target.name]:permet de récupéer le nom de l'input qui est change
                //qui peut etre soit nom ou prenom
               
            }
        })
       
    }
   
    //ajouter un nouveau stagiaire dans la variable du state listeStagiaires
    ajouterStagiaire=(event)=>{
        //vérifier si tout les champs sont remplis
        if(this.state.stagiaire.nom!='' && this.state.stagiaire.prenom!='')
        {
        //changer la valeur du state afin d'ajouter un nouveau stagiaire
        this.setState({
            listeStagiaires:[...this.state.listeStagiaires,this.state.stagiaire]
            //...this.state.listeStagiaires: récupéer la listes des stagiaire déja ajouter puis ajouté
               //un nouveau stagiaire
        })
    }
}
   
   
    render(){
        return(<div>
            <table>
            <tr>
            <td>Nom</td>
            <td><input type="text" name="nom" onChange={this.getValue}/></td>
            </tr>
            <tr>
            <td>Prénom</td>
            <td><input type="text" name="prenom" onChange={this.getValue}/></td>
            </tr>
            <tr>
            <td></td>
            <td><input type="button" value="Ajouter" onClick={this.ajouterStagiaire}/></td>
            </tr>
            </table>
           
            <b>liste stagiaires</b>
            <table>
            <thead>
            <th>Nom</th>
            <th>Prénom</th>
            </thead>
            <tbody>
            {
                this.state.listeStagiaires.map((str) =>{
                    return(<tr>
                        <td>{str.nom}</td>
                        <td>{str.prenom}</td>
                        </tr>)
                    })  
                }
                </tbody>
                </table>
                </div>)
            }
        }
        export default Formulaire

App.js

  import React from 'react';
  import './App.css';
import Formualire from './components/formualire/formualire';
  class  App extends React.Component{
    constructor(props)
    {
      super(props);
     
    }
   
    render()
    {
      return (
        <div>
        <Formualire />
        </div>
        );
      }
    }
    export default App;
npm start
Exemple 2

Dans cet exemple, nous allons créer une application qui permet à l'utilisateur de saisir son nom et d'afficher un message de bienvenue.

import React, { Component } from 'react';

class WelcomeApp extends Component {
  constructor(props) {
    super(props);
    this.state = {
      name: '',
      message: '',
    };
  }

  handleChange = (event) => {
    this.setState({
      name: event.target.value,
    });
  }

  handleSubmit = (event) => {
    event.preventDefault();
    const message = `Bienvenue, ${this.state.name} !`;
    this.setState({
      message,
    });
  }

  render() {
    return (
	  <div>
        <h1>Simple Application with this.state and Form</h1>
        <form onSubmit={this.handleSubmit}>
          <label>
            Entrez votre nom : 
            <input type="text" value={this.state.name} onChange={this.handleChange} />
          </label>
          <button type="submit">Envoyer</button>
        </form>
        <div>
          {this.state.message && <p>{this.state.message}</p>}
        </div>
      </div>
    );
  }
}

export default WelcomeApp;
Exemple 3

Dans cet exemple, nous allons créer une application de liste de tâches où l'utilisateur peut ajouter et supprimer des tâches.

import React, { Component } from 'react';

class TodoApp extends Component {
  constructor(props) {
    super(props);
    this.state = {
      tasks: [],
      newTask: '',
    };
  }

  handleChange = (event) => {
    this.setState({
      newTask: event.target.value,
    });
  }

  handleSubmit = (event) => {
    event.preventDefault();
    if (this.state.newTask.trim() !== '') {
      this.setState({
        tasks: [...this.state.tasks, this.state.newTask],
        newTask: '',
      });
    }
  }

  handleDelete = (index) => {
    const updatedTasks = [...this.state.tasks];
    updatedTasks.splice(index, 1);
    this.setState({
      tasks: updatedTasks,
    });
  }

  render() {
    return (
      <div>
        <h1>Todo List</h1>
        <form onSubmit={this.handleSubmit}>
          <input
            type="text"
            value={this.state.newTask}
            onChange={this.handleChange}
            placeholder="Ajouter une tâche"
          />
          <button type="submit">Ajouter</button>
        </form>
        <ul>
          {this.state.tasks.map((task, index) => (
            <li key={index}>
              {task}
              <button onClick={() => this.handleDelete(index)}>Supprimer</button>
            </li>
          ))}
        </ul>
      </div>
    );
  }
}

export default TodoApp;
Exemple 4

une application de conversion de devises qui permet à l'utilisateur de saisir une valeur en dollars américains (USD) et de la convertir en euros (EUR) en utilisant un taux de change fixe.

import React, { Component } from 'react';

class CurrencyConverter extends Component {
  constructor(props) {
    super(props);
    this.state = {
      usdAmount: '',
      eurAmount: '',
      exchangeRate: 0.85, // Taux de change USD vers EUR
    };
  }

  handleUsdAmountChange = (event) => {
    this.setState({
      usdAmount: event.target.value,
    });
  }

  convertCurrency = () => {
    const usdAmount = parseFloat(this.state.usdAmount);
    if (!isNaN(usdAmount)) {
      const eurAmount = usdAmount * this.state.exchangeRate;
      this.setState({
        eurAmount: eurAmount.toFixed(2), // Arrondir à deux décimales
      });
    }
  }

  render() {
    return (
      <div>
        <h1>Currency Converter</h1>
        <label>
          USD:
          <input
            type="number"
            value={this.state.usdAmount}
            onChange={this.handleUsdAmountChange}
          />
        </label>
        <button onClick={this.convertCurrency}>Convert</button>
        <p>EUR: {this.state.eurAmount}</p>
      </div>
    );
  }
}

export default CurrencyConverter;