Maison > Article > interface Web > Création de l'application My Pokémon Collection : données locales, interactivité et événements JavaScript
Quand j'ai démarré ce projet, mon objectif était simple : créer une application de collection de Pokémon où les utilisateurs pourraient explorer les Pokémon et leurs détails. En combinant JavaScript, Node.js et des données locales, j'ai créé une application interactive qui permet aux utilisateurs de visualiser les images, les capacités et les types de Pokémon, tout en affinant mes compétences avec les auditeurs d'événements, les mises à jour de contenu dynamiques, et bien plus encore. Pendant que j'y travaille avec un partenaire, je vais me concentrer spécifiquement sur mon travail. Voici comment tout cela s’est déroulé !
Cette application est conçue pour présenter une collection d'images et de statistiques Pokémon, permettant aux utilisateurs de cliquer facilement sur chaque Pokémon pour afficher les détails et basculer entre les images principales et alternatives avec des interactions de survol. J'ai diffusé les données Pokémon localement, ce qui m'a permis de me concentrer sur la façon de restituer, de mettre à jour et d'interagir avec les données au sein de l'application elle-même.
Au lieu d'extraire d'une API externe, j'ai créé un fichier db.json local avec des données Pokémon, y compris des attributs tels que le nom, le type, la capacité et les chemins d'image. En exécutant un serveur local sur http://localhost:3500/pokemon, j'ai pu récupérer ces données en utilisant la méthode fetch en JavaScript. La configuration simplifiée m'a permis de créer et de tester l'application entièrement hors ligne.
Voici un aperçu de la façon dont j’ai abordé les éléments clés du projet.
function getAllPokemon() { return fetch(pokemonURL).then(response => response.json()); }
Cette fonction extrait les données Pokémon de http://localhost:3500/pokemon, que j'utilise ensuite pour restituer dynamiquement chaque Pokémon.
const displayPokemons = () => { getAllPokemon().then(pokemonArr => { pokemonArr.forEach(renderPokemon); handleClick(pokemonArr[0]); // Display first Pokémon by default }); }
La fonction renderPokemon crée une image pour chaque Pokémon, ajoute un style et attache un événement de clic pour afficher les détails.
Soumission du formulaire :
Pour ajouter un nouveau Pokémon, j'ai configuré un écouteur de soumission sur le formulaire, qui rassemble les valeurs des champs de saisie et ajoute le nouveau Pokémon à la collection. Ce nouveau Pokémon est rendu sans avoir besoin de rafraîchir la page :
function getAllPokemon() { return fetch(pokemonURL).then(response => response.json()); }
Ici, event.preventDefault() empêche le formulaire de recharger la page, garantissant une expérience utilisateur fluide.
Événement de survol pour les images alternatives :
Lorsque les utilisateurs survolent l’image du Pokémon dans la section détails, celle-ci passe à une image alternative, simulant une évolution ou une transformation. L'événement mouseover déclenche ce commutateur, tandis que mouseout le rétablit :
const displayPokemons = () => { getAllPokemon().then(pokemonArr => { pokemonArr.forEach(renderPokemon); handleClick(pokemonArr[0]); // Display first Pokémon by default }); }
Cet effet offre aux utilisateurs une façon amusante d'interagir avec chaque Pokémon et d'explorer visuellement ses caractéristiques.
L'un des défis consistait à structurer le JavaScript pour qu'il reste modulaire et gérable, car les écouteurs d'événements et les éléments dynamiques peuvent rapidement devenir difficiles à suivre. J'ai appris à compartimenter mon code en fonctions plus petites et à utiliser les écouteurs d'événements de manière sélective pour optimiser les performances et la lisibilité.
Ce projet de collection Pokémon était une façon passionnante d'appliquer JavaScript, d'expérimenter la récupération de données locales et d'ajouter une interactivité attrayante basée sur des événements. Créer cette application à partir de zéro m'a donné une expérience précieuse avec les concepts front-end et back-end, ce qui m'a inspiré pour explorer des projets plus interactifs à l'avenir.
https://github.com/kelseyroche/phase-1-project-pokemon
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!