Créer un Convertisseur de Devises en React
5 août 20263 min de lectureCurrencyRest

Créer un Convertisseur de Devises en React

Tutorialscurrency converterreactAPI

Créer un Convertisseur de Devises en React : Taux en Direct, Entrées Débouncées et UX Propre

Créer une application de convertisseur de devises en React est non seulement un projet pratique, mais aussi une excellente occasion d'améliorer vos compétences en développement. En utilisant des taux de change en direct d'une API comme CurrencyRest, vous pouvez permettre aux utilisateurs de convertir des devises en temps réel. Dans cet article, nous verrons comment construire un convertisseur de devises avec des entrées débouncées et une expérience utilisateur fluide.

Pourquoi Utiliser CurrencyRest ?

CurrencyRest propose des taux de change en temps réel et historiques couvrant plus de 180 devises fiat et environ 100 cryptomonnaies. En intégrant cette API, vous pouvez :

  • Obtenir des taux de change en direct des banques centrales et des échanges.
  • Recevoir des données fiables de sources comme la BCE, la Fed et Binance.
  • Accéder à un plan gratuit généreux permettant 300 requêtes par mois.

Configurer Votre Application React

Tout d'abord, configurez votre environnement React en utilisant Create React App :

npx create-react-app currency-converter
cd currency-converter
npm start

Installer Axios

Nous utiliserons Axios pour gérer les requêtes API. Installez-le en utilisant npm :

npm install axios

Construire le Composant Convertisseur

Créer le composant principal du convertisseur de devises implique de gérer les entrées et d'afficher les résultats. Voici une structure simple pour ce composant :

import React, { useState, useEffect } from 'react';
import axios from 'axios';

const CurrencyConverter = () => {
  const [fromCurrency, setFromCurrency] = useState('USD');
  const [toCurrency, setToCurrency] = useState('EUR');
  const [amount, setAmount] = useState(1);
  const [exchangeRate, setExchangeRate] = useState(0);
  const [result, setResult] = useState(0);

  useEffect(() => {
    const fetchExchangeRate = async () => {
      try {
        const response = await axios.get(`https://api.currencyrest.com/api/v1/convert?from=${fromCurrency}&to=${toCurrency}&amount=${amount}`);
        setExchangeRate(response.data.result);
        setResult(exchangeRate * amount);
      } catch (error) {
        console.error('Erreur lors de la récupération du taux de change', error);
      }
    };
    fetchExchangeRate();
  }, [fromCurrency, toCurrency, amount]);

  return (
    <div>
      <h1>Convertisseur de Devises</h1>
      <input type="number" value={amount} onChange={(e) => setAmount(e.target.value)} />
      <select onChange={(e) => setFromCurrency(e.target.value)}>
        <option value="USD">USD</option>
        <option value="EUR">EUR</option>
        <option value="XOF">XOF</option>
        {/* Ajoutez d'autres devises */}
      </select>
      <span>à</span>
      <select onChange={(e) => setToCurrency(e.target.value)}>
        <option value="EUR">EUR</option>
        <option value="USD">USD</option>
        <option value="XOF">XOF</option>
        {/* Ajoutez d'autres devises */}
      </select>
      <h2>Montant Converti : {result}</h2>
    </div>
  );
};

export default CurrencyConverter;

Débouncage des Entrées Utilisateur

Pour améliorer l'expérience utilisateur, implémentez un débouncage sur les champs d'entrée afin de réduire le nombre de requêtes API. Vous pouvez utiliser un hook useDebounce personnalisé à cet effet. Voici un exemple :

import { useState, useEffect } from 'react';

const useDebounce = (value, delay) => {
  const [debouncedValue, setDebouncedValue] = useState(value);
  useEffect(() => {
    const handler = setTimeout(() => {
      setDebouncedValue(value);
    }, delay);
    return () => {
      clearTimeout(handler);
    };
  }, [value, delay]);
  return debouncedValue;
};

Maintenant, vous pouvez remplacer les appels pour changer amount, fromCurrency et toCurrency par leurs versions débouncées dans votre composant principal.

Conclusion

Dans ce tutoriel, vous avez appris comment construire une simple mais efficace application de convertisseur de devises en React. Avec l'intégration de l'API CurrencyRest, vous pouvez fournir des taux de change précis et en temps réel à vos utilisateurs.

N'oubliez pas de vous inscrire sur CurrencyRest pour accéder à 300 requêtes gratuites par mois et commencer à construire vos propres projets avec des données du monde réel!

CurrencyRest

Auteur