3.13 Ajout d'une logique javascript normal aux composants

Dans cette vidéo, nous améliorons l'affichage de la date dans notre composant. Plutôt que d'afficher la date brute avec toString(), nous allons extraire le mois, le jour et l'année séparément, puis les afficher dans trois <div> distinctes. C'est une excellente occasion d'intégrer de la logique JavaScript classique dans un composant React.

Décomposer une date avec toLocaleString

  • Utiliser props.date.toLocaleString('fr-FR', { ... }).
  • Extraire le mois avec { month: 'long' }.
  • Extraire le jour avec { day: '2-digit' }.
  • Extraire l'année avec getFullYear().

Nous remplaçons le simple toString() par trois constantes (mois, jour, annee). Chacune utilise la méthode toLocaleString avec les options de formatage appropriées, en spécifiant la locale 'fr-FR' pour avoir les noms de mois en français. L'année, plus simple, se récupère via getFullYear() qui renvoie directement un nombre.

function DepenseDate(props) {
  const mois = props.date.toLocaleString('fr-FR', { month: 'long' });
  const jour = props.date.toLocaleString('fr-FR', { day: '2-digit' });
  const annee = props.date.getFullYear();

  return (
    <div>
      <div>{mois}</div>
      <div>{annee}</div>
      <div>{jour}</div>
    </div>
  );
}

Le rendu affiche désormais le mois, l'année et le jour séparés, ce qui ouvre la voie à un affichage très design (par exemple un calendrier minimaliste). Il reste quelques ajustements visuels à faire, mais la structure est en place. Nous attaquerons le prochain chapitre pour découper notre composant en sous-composants plus réutilisables.

En résumé

Cette leçon montre comment intégrer de la logique JavaScript standard dans les composants React. L'approche consiste à remplacer le JSX statique par des variables const qui manipulent des données dynamiques, comme les composantes de date (mois, année, jours). On utilise toLocaleDateString() pour formater les dates selon une locale, puis on accède aux valeurs via les props pour afficher les données dynamiques dans le composant.

Points clés

  • Remplacer le JSX statique par des constantes JavaScript (const) pour ajouter de la logique dynamique
  • Créer des constantes séparées pour les composantes de date : mois, année et jours
  • Utiliser toLocaleDateString() avec une locale spécifiée pour formater correctement les dates
  • Accéder aux données dynamiques via les props (ex: props.mois, props.année)
  • Cette approche permet d'afficher des valeurs calculées plutôt que du contenu figé

Questions fréquentes

Comment remplacer le contenu statique par de la logique JavaScript dans les composants?

En créant des constantes JavaScript (const) qui manipulent les données, comme des constantes pour la date (const mois, const année, const jours), au lieu d'avoir du JSX statique. Ces constantes remplacent le contenu fixe et permettent d'afficher des valeurs dynamiques.

Quel est le rôle de toLocaleDateString() dans la leçon?

Cette méthode JavaScript formate les dates selon une locale spécifiée (par exemple "1 fr" pour le français). Elle permet d'afficher les dates dans le format correct adapté à la région utilisateur.

Comment accéder aux données dynamiques dans le composant React?

On utilise les props du composant pour accéder aux valeurs stockées dans les constantes. Par exemple, props.mois, props.année permettent de récupérer les données et les utiliser dans le rendu du composant.