În acest tutorial final din seria noastră React, vom crea un nou
componenta pentru adăugarea manuală a unor filme noi printr-un formular personalizat. Acest lucru va duce la încheierea dezvoltării aplicației "Movie Mojo".
Codul pentru proiectul final este disponibil pentru descărcare prin intermediul link-ului din partea dreaptă a ecranului (poate fi necesar să derulați în jos). Mai târziu, vă voi oferi instrucțiuni pas cu pas despre cum să faceți proiectul să funcționeze pe sistemul dvs..
componenta scoate un formular care să permită utilizatorilor să introducă manual detaliile despre un film individual și să le adauge la filmele existente din galerie după ce formularul a fost trimis.
Formularul necesită trei intrări de text pentru titlul, anul și imaginea posterului; plus o zonă de text pentru descrierea filmului. În / src / componente /
, creați un fișier nou numit AddMovie.js
și adăugați următoarele:
import React, Component de la "reacție"; clasa AddMovie extinde Component render () return (); export implicit AddMovie;
Reacția ref
atributul stochează o referință la fiecare câmp de intrare ca formă ca proprietate a clasei componente. Vom folosi aceste referințe în curând ca o modalitate de a apuca cu ușurință valorile câmpului de intrare.
În primul rând, totuși, adăugați următoarele stiluri App.css
pentru a face forma mai puțin estetică:
/ * stiluri de filme * / .movie-form width: 250px; marja: 0 auto; .movie-formular de intrare, .movie-form textarea width: 250px; font-size: 14px; padding: 5px; margine: 5px; butonul pentru formularul font-size: 16px; padding: 4px; margine: 10px 10px 30px 10px;
În Apoi, în partea de sus a fișierului, importați Aplicația dvs. "Movie Mojo" ar trebui să afișeze acum un formular în partea de jos a ferestrei browserului. Trebuie să specificăm o metodă de apel invers care se execută ori de câte ori este trimis formularul, pe care îl putem folosi pentru a crea un film nou. Adăugați această funcție la Apoi, adăugați Prima sarcină este să împiedicăm evenimentul implicit de trimitere de la tragere, cu care facem Apoi, vom crea un obiect de film nou prin apucarea valorilor câmpului de intrare pentru formulare pe care le-am stocat convenabil ca proprietăți ale clasei componente mai devreme. A Odată ce ați fost satisfăcut Pentru a afișa noul film în galeria noastră, trebuie să îl adăugăm la Pentru a realiza acest lucru, creați o nouă metodă în Nu uitați să legați noua metodă la De altfel, s-ar putea să te întrebi de ce trebuie să facem acest lucru aici, dar nu și pentru A folosi Înapoi în Acum, când vom completa formularul, obținem obiectul filmului afișat în consola, ca și înainte, dar de această dată este prin intermediul Ștergeți Acest lucru este destul de similar cu ceea ce am făcut în partea a treia pentru Acest lucru va duce la fiecare film suplimentar, adăugat prin intermediul formularului, având chei unice. … si asa mai departe. Deschideți aplicația "Movie Mojo" din browser și adăugați două filme noi în galerie prin intermediul formularului. În plus, sunt adăugate imagini poster de film suplimentare De fiecare dată când trimiteți formularul, se adaugă un film suplimentar în galerie! Faceți clic pe link-ul din partea dreaptă (aproximativ la jumătatea paginii) pentru a descărca fișierul zip din proiectul "Movie Mojo" finalizat. Odată ce este extras, deschideți o fereastră de linie de comandă și navigați la Acest lucru va dura câteva minute pentru a descărca toate modulele "Node.js" necesare pentru a rula proiectul. Apoi tastați: Aceasta va compila aplicația React și o va deschide într-un browser prin intermediul unui server mini web dedicat. Am acoperit destul de mult în seria tutorialului din patru părți, așa că felicitări dacă ați reușit să faceți totul și ați urmat împreună cu codul. Acum ar trebui să vă simțiți confortabil cu elementele de bază ale React, iar acest lucru vă va oferi speranța de a continua și de a construi aplicații mai complicate. Aș recomanda descărcarea proiectului "Movie Mojo" și examinarea codului sursă pentru a vă asigura că înțelegeți cum se potrivesc. Există o mulțime de posibilități de a extinde aplicația, deci de ce să nu încercați să veniți cu unele noi caracteristici suplimentare? Aceasta este, de asemenea, o modalitate excelentă de cimentare a învățării prin încercarea de a implementa noi elemente React în aplicație. Iată câteva idei pe care le puteți adăuga: Mi-ar plăcea să aud orice feedback despre acest tutorial prin comentariile de mai jos. Credeți că este ușor să urmați sau au existat părți cu care v-ați confruntat? Întotdeauna îmi doresc să-mi fac tutorialele mai bine, deci feedback-ul este întotdeauna foarte binevenit. Codul Happy React!App.js
, adaugă
componentă în interiorul închiderii
componente pentru al face disponibil.importați AddMovie din "./AddMovie";
element:
onSubmit = (e) => this.addNewMovie (e)
addNewMovie ()
la partea de sus a
clasa componente:addNewMovie (e) e.preventDefault (); var film = titlu: această valoare titlu, anul: această an.valură, descriere: această descriere.value, poster: this.poster.value; console.log (film);
e.preventDefault ()
. În caz contrar, atunci când formularul este trimis, pagina web se va actualiza automat, ceea ce nu este ceea ce dorim.console.log ()
comanda iese film
obiect, astfel încât să putem testa că este creat corect după depunerea formularului.film
obiect este generat corect, mergeți mai departe și ștergeți console.log ()
apel.film
obiect de stat. Odată ce acest lucru se va realiza, React va avea grijă de actualizarea DOM pentru noi.App.js
(unde trăiește obiectul de stare al aplicației) să se ocupe de adăugarea unui film la starea actuală.addMovieToGallery (film) console.log ('mooooooovie', film);
acest
astfel încât este disponibil în întreaga clasă.this.addMovieToGallery = this.addMovieToGallery.bind (acest);
addNewMovie ()
metoda pe care am adăugat-o la
mai sus. Acesta este un efect secundar al utilizării unei funcții de săgeată ES6, deoarece se leagă automat acest
Pentru dumneavoastră. Acest truc mic merită să vă amintiți, deoarece reduce complexitatea codului, îmbunătățind în același timp lizibilitatea codului.addMovieToGallery ()
în a noastră
componenta copil componentă, pur și simplu trecem o referință la ea prin intermediul recuzităților. În App.js
, actualizați
sunați la:AddMovie.js
, actualizați addNewMovie ()
metoda de trecere a obiectului de film la addMovieToGallery ()
prin intermediul metodei addMovie
pe care tocmai am creat-o.addNewMovie (e) e.preventDefault (); var film = titlu: această valoare titlu, anul: această an.valură, descriere: această descriere.value, poster: this.poster.value; this.props.addMovie (film);
addMovieToGallery ()
metodă în
component.console.log ()
comandă în addMovieToGallery ()
și înlocuiți-l cu următorul cod pentru a adăuga detaliile filmului introduse la filme
obiect de stat:addMovieToGallery (film) var ts = Date.now (); var newMovie = ; newMovie ['film' + ts] = film; var currentMovies = ... this.state.movies; var newMovies = Object.assign (currentMovies, newMovie); this.setState (filme: newMovies);
loadAdditionalMovies ()
metodă. Principala diferență este că o cheie unică trebuie generată, în zbor, pentru fiecare intrare video suplimentară. Acest lucru se realizează prin utilizarea ștampilei curente ca tastă unică și prin adăugarea acesteia film
.film1501686019706 film1501686027906 film1501686032929
./ Public / postere /
pentru confort, astfel încât să puteți testa cu ușurință adăugarea de filme la galerie. Puteți accesa acestea descărcând proiectul de aplicație finită.Instalarea filmului Mojo
film-Mojo
director și introduceți:npm install
npm start
Concluzie