Dans ce tutoriel, je vais vous montrer comment j'ai créé une application d'actualités à l'aide de React et de l'API du New York Times. Ce projet a été pour moi un excellent moyen d'en apprendre davantage sur React, comment travailler avec une API et comment déployer une application web avec Vercel.
L'application New York Times News est une application Web simple qui permet aux utilisateurs de consulter les dernières nouvelles du New York Times. L'application obtient les données directement de l'API du New York Times et les affiche dans une interface claire et facile à utiliser.
Avant de commencer à coder, assurez-vous d'avoir les éléments suivants sur votre ordinateur :
1. Cloner le référentiel :
git clone https://github.com/tomasdevs/the-new-york-times-app.git cd the-new-york-times-app
2. Installer les dépendances :
Nous devons installer les outils pour les parties client et serveur de notre application.
cd client npm install npm install react-transition-group cd ../server npm install
3. Configurer les variables d'environnement :
Créez un fichier .env dans le dossier du serveur et ajoutez votre clé API du New York Times :
NYT_API_KEY=votre_api_key_here
Dans le composant Articles.js, j'ai utilisé l'API Fetch pour obtenir les derniers articles d'actualité. Voici comment cela fonctionne :
const response = await fetch( process.env.NODE_ENV === "production" ? `https://api.nytimes.com/svc/topstories/v2/home.json?api-key=${process.env.REACT_APP_NYT_API_KEY}` : `${process.env.REACT_APP_API_URL}/api/articles` );
Ce code garantit que lorsque l'application est en ligne, elle obtient les données directement de l'API du New York Times. Pendant le développement, il obtient les données d'un serveur local, ce qui facilite les tests.
Pour gérer la pagination, j'ai ajouté une logique simple qui divise la liste des articles en pages. J'ai également utilisé react-transition-group pour ajouter des animations fluides lors du déplacement entre les articles :
<TransitionGroup component="ul" className="articles-list"> {currentArticles.map((article, index) => ( <CSSTransition key={index} timeout={500} classNames="article"> <ArticleItem article={article} /> </CSSTransition> ))} </TransitionGroup>
Au début, j'ai eu quelques problèmes avec CORS en essayant d'obtenir des données de l'API du New York Times lors du développement local. J'ai résolu ce problème en configurant un simple serveur backend qui faisait office de proxy. Pour la version live, j'ai récupéré les données directement depuis l'API pour garder les choses simples.
J'ai également appris à quel point il est important de gérer correctement les variables d'environnement, en particulier lors du déploiement sur des plateformes comme Vercel. Il est important de protéger les données sensibles, telles que les clés API.
Ce projet a été une formidable expérience d’apprentissage. Cela m'a aidé à améliorer mes compétences en React, en intégration d'API et en déploiement Web. Je suis vraiment satisfait du résultat de l'application et j'ai hâte de construire des projets plus complexes à l'avenir.
Si vous avez des commentaires ou des suggestions, n'hésitez pas à nous contacter ou à laisser un commentaire. Vous pouvez également consulter le code sur GitHub et l'essayer vous-même.
Essayez la démo en direct ici !
Merci d'avoir lu !
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!