Dans ce dernier tutoriel de notre série React, nous allons créer un nouveau
composant pour ajouter de nouveaux films manuellement via un formulaire personnalisé. Cela mettra un terme au développement de l'application 'Movie Mojo'.
Le code du projet final est disponible au téléchargement via le lien situé à droite de l'écran (il peut être nécessaire de faire défiler l'écran vers le bas). Plus tard, je donnerai des instructions pas à pas sur la manière de mettre le projet en marche et de le faire fonctionner sur votre système.
le
composant génère un formulaire pour permettre aux utilisateurs de saisir manuellement les détails d'un film et de l'ajouter aux films existants dans la galerie une fois le formulaire soumis.
Le formulaire nécessite trois entrées de texte pour le titre, l'année et l'image de l'affiche. plus une zone de texte pour la description du film. Dans / src / composants /
, créer un nouveau fichier appelé AddMovie.js
et ajoutez ce qui suit:
importer Réagir, Composant de 'réagir'; La classe AddMovie étend Component render () return () export par défaut AddMovie;
La réaction ref
attribut stocke une référence à chaque champ de saisie de formulaire en tant que propriété de classe de composant. Nous utiliserons ces références prochainement pour saisir facilement les valeurs des champs de saisie..
Tout d’abord, ajoutez les styles suivants à App.css
pour rendre la forme un peu plus esthétique:
/ * styles de forme de film * / .movie-form width: 250px; marge: 0 auto; Entrée .movie-form, .movie-form textarea width: 250px; taille de police: 14px; rembourrage: 5px; marge: 5px; bouton .movie-form taille de la police: 16px; rembourrage: 4px; marge: 10px 10px 30px 10px;
Dans Ensuite, en haut du fichier, importez le fichier Votre application 'Movie Mojo' devrait maintenant afficher un formulaire vers le bas de la fenêtre du navigateur.. Nous devons spécifier une méthode de rappel qui s'exécute chaque fois que le formulaire est soumis et que nous pouvons utiliser pour créer un nouveau film. Ajoutez ceci au Ensuite, ajoutez le La première tâche consiste à empêcher le déclenchement de l'événement de soumission par défaut, ce que nous faisons avec Ensuite, nous créons un nouvel objet de film en récupérant les valeurs de champs de saisie de formulaire que nous avons stockées auparavant en tant que propriétés de la classe de composants.. UNE Une fois que vous êtes satisfait du Afin d’afficher le nouveau film dans notre galerie, nous devons l’ajouter au Pour ce faire, créez une nouvelle méthode dans N'oubliez pas de lier la nouvelle méthode à la Incidemment, vous pouvez vous demander pourquoi nous avions besoin de le faire ici, mais pas pour le Utiliser Retour dans Maintenant, lorsque nous remplissons le formulaire, l’objet film est envoyé à la console, comme auparavant, mais cette fois, c’est via le Supprimer le C’est assez similaire à ce que nous avons fait dans la troisième partie pour le Cela donnera à chaque film supplémentaire, ajouté via le formulaire, des clés uniques. … etc. Ouvrez l'application "Movie Mojo" dans le navigateur et ajoutez deux nouveaux films à la galerie via le formulaire. Des images d’affiche de film supplémentaires ont été ajoutées au Chaque fois que vous soumettez le formulaire, un film supplémentaire est ajouté à la galerie.! Cliquez sur le lien à droite (à peu près au milieu de la page) pour télécharger le fichier zip du projet "Movie Mojo" terminé. Une fois qu'il est extrait, ouvrez une fenêtre de ligne de commande et accédez au Cela prendra quelques minutes pour télécharger tous les modules 'Node.js' nécessaires à l'exécution du projet.. Puis tapez: Ceci compilera l'application React et l'ouvrira dans un navigateur via un mini serveur Web dédié.. Nous avons couvert pas mal de choses dans cette série de tutoriels en quatre parties, alors félicitations si vous avez suivi le code et suivi le code. Vous devriez maintenant vous sentir à l'aise avec les bases de React, ce qui, espérons-le, vous donnera la confiance nécessaire pour créer des applications plus complexes.. Je vous recommande de télécharger le projet 'Movie Mojo' et d'examiner le code source pour vous assurer de bien comprendre comment tout cela fonctionne.. Il y a beaucoup de possibilités d'étendre l'application, alors pourquoi ne pas essayer de proposer de nouvelles fonctionnalités supplémentaires? C'est également un excellent moyen de consolider votre apprentissage en essayant de mettre en œuvre de nouveaux éléments React dans l'application.. Voici quelques idées que vous pourriez envisager d'ajouter: J'aimerais entendre vos commentaires sur ce tutoriel via les commentaires ci-dessous. Avez-vous trouvé cela facile à suivre, ou y avait-il des parties avec lesquelles vous avez lutté? Je cherche toujours à améliorer mes tutoriels, les commentaires sont donc toujours les bienvenus.. Happy React codage!App.js
, ajouter le
composant à l'intérieur de la fermeture
composant pour le rendre disponible.importer AddMovie de './AddMovie';
élément:
onSubmit = (e) => this.addNewMovie (e)
addNewMovie ()
méthode au sommet de la
classe de composant:addNewMovie (e) e.preventDefault (); var movie = titre: this.title.value, année: this.année.valeur, description: this.description.value, affiche: this.poster.value; console.log (film);
e.preventDefault ()
. Sinon, lors de l'envoi du formulaire, la page Web s'actualisera automatiquement, ce qui n'est pas ce que nous voulons..console.log ()
la commande affiche le film
objet afin que nous puissions tester qu'il est créé correctement lors de la soumission du formulaire.film
l'objet est correctement généré, continuez et supprimez le console.log ()
appel.film
objet d'état. Une fois cela fait, React se chargera de mettre à jour le DOM pour nous..App.js
(où réside l'état de l'application) pour gérer l'ajout d'un film à l'état actuel.addMovieToGallery (movie) console.log ('mooooooovie', movie);
ce
il est donc disponible pendant toute la classe.this.addMovieToGallery = this.addMovieToGallery.bind (this);
addNewMovie ()
méthode nous avons ajouté à la
composant ci-dessus. Ceci est un effet secondaire de l’utilisation d’une fonction de flèche ES6, car elle lie automatiquement ce
pour vous. Rappelez-vous ce petit truc, car il réduit la complexité du code tout en améliorant la lisibilité de votre code..addMovieToGallery ()
dans notre
code de composant enfant, nous lui passons simplement une référence via des accessoires. Dans App.js
, mettre à jour le
appeler pour être:AddMovie.js
, mettre à jour le addNewMovie ()
méthode pour passer l'objet de film à la addMovieToGallery ()
méthode via le addMovie
prop nous venons de créer.addNewMovie (e) e.preventDefault (); var movie = titre: this.title.value, année: this.année.valeur, description: this.description.value, affiche: this.poster.value; this.props.addMovie (film);
addMovieToGallery ()
méthode dans le
composant.console.log ()
commande en addMovieToGallery ()
et remplacez-le par le code suivant pour ajouter les détails du film entrés au films
objet d'état:addMovieToGallery (movie) var ts = Date.now (); var newMovie = ; newMovie ['movie' + ts] = movie; var currentMovies = … this.state.movies; var newMovies = Object.assign (currentMovies, newMovie); this.setState (movies: newMovies);
loadAdditionalMovies ()
méthode. La principale différence est qu'une clé unique doit être générée, à la volée, pour chaque entrée de film supplémentaire. Ceci est réalisé en utilisant l’horodatage actuel comme clé unique et en l’ajoutant à film
.movie1501686019706 movie1501686027906 movie1501686032929
./ public / affiches /
dossier pour plus de commodité, afin que vous puissiez facilement tester l’ajout de films à la galerie. Vous pouvez y accéder en téléchargeant le projet d'application terminé..Installation de Movie Mojo
film-mojo
répertoire, et entrez:npm installer
npm start
Conclusion