Forstå skjemaer og hendelser i React

I denne opplæringen lærer du om skjemaer og hendelser i React. Vi starter med å lage en enkel React-basert app, og deretter legge til et skjema og noen elementer. Da ser vi hvordan du legger til hendelser i skjemaelementene.

Hvis du er nybegynner med React, vil jeg anbefale å lese introduksjonsveiledningen på React for å komme i gang.

Starter

La oss starte med å sette opp vårt React-webprogram. Opprett en prosjektmappe som heter ReactFormApp. Innsiden ReactFormApp, opprett en fil som heter index.html og legg til følgende HTML-kode:

  TutsPlus - React Forms & Events   

Initialiser prosjektet ved hjelp av Node Package Manager (npm).

npm init

Fyll ut de nødvendige detaljene, og du bør ha package.json fil inne i ReactFormApp mappe.

"navn": "reaktordapp", "versjon": "1.0.0", "beskrivelse": "", "hoved": "index.js", "skript": "test": "echo \" feil : ingen test oppgitt \ "&& exit 1", "forfatter": "", "lisens": "ISC"

Installer reagere og reagere-dom avhengigheter ved bruk av npm.

npm installere reagerer reagerer dom - save

Installer den nødvendige babelpakken med npm og lagre den på package.json fil.

npm installere -save-dev web-pakke webpack-dev-server babel-core babel-loader babel-preset-reagerer babel-preset-es2015

babel Det kreves pakker for å omforme JSX-koden til JavaScript.

Opprett en webpack-konfigurasjonsfil for å håndtere webpackkonfigurasjonene. Opprett en fil som heter webpack.config.js og legg til følgende konfigurasjoner:

module.exports = entry: './app.js', output: filnavn: 'bundle.js',, modul: loaders: [ekskluder: / node_modules /, loader: 'babel-loader? ] = es2015 og forhåndsinnstillinger [] = reagere ']

app.js er filen der vår React-kode vil oppholde seg. Opprett en fil som heter app.js inne i ReactFormApp mappe. Importer de nødvendige reaksjonsbibliotekene i app.js. Opprett en komponent som heter app ha en div med litt tekst. Gjenfør komponenten ved hjelp av gjengivelsesmetoden. Her er hvordan det grunnleggende app.js filen ville se ut:

importere React fra 'reagere' import render fra 'react-dom' var App = React.createClass (render: function () return ( 
TutsPlus - Velkommen til React Form App
); ); gjengi (( ), Document.getElementById ( 'app'))

Lagre endringene og prøv å laste om webpack-utviklingsserveren.

Webpack-dev-serveren

Når serveren er startet på nytt, bør du kunne se React-appen som kjører på http: // localhost: 8080 /.

Opprette en reaksjonsskjema

Vi har den grunnleggende React-appen oppe og går, La oss gå videre til neste trinn, og prøv å lage en formkomponent ved hjelp av JSX-koden i app.js.

Opprett en komponent som heter FormComp innsiden app.js.

var FormComp = React.createClass (render: function () return ();)

Innenfor gjengivelsesfunksjonen for FormComp definerer vi HTML-koden for å lage et skjema. Vi legger inn et par etiketter, innmatingsbokser og en knapp for å klikke. Slik ser det ut:

var FormComp = React.createClass (render: function () return ( 

TutsPlus - React Form Tutorial





); )

Gi formkomponenten tilbake FormComp å vise skjemaet inne index.html.

gjengi ((  ), Document.getElementById ( 'app'))

Lagre endringene og start webpackserveren igjen, og du bør kunne se skjemaet.

Legge til hendelser i skjemaet

Vår React-skjema er i god form. For å få det til å virke, må vi legge til hendelser i skjemaet. 

Vi begynner med å legge til tilstandsvariabler på hver av inntastingsbokser, slik at vi kan lese verdiene til innboksene. La oss stille statlige variabler for fornavnet og de siste inntastede tekstbokser.

 

Pass på å angi startstatus for de ovennevnte variablene. Definer getInitialState fungere inne i FormComp komponent og initialiser begge variablene.

getInitialState: function () return lName: ", fName:"; ,

Vi må håndtere endringshendelsen til inntastingsboksene og tilordne tilstandsvariablene når verdien i tekstfeltene endres. Så definer en onChange hendelse på inngangs boksene.

 

Definer onChange Funksjoner inne i FormComp og sett tilstandsvariablene.

handleFNameChange: function (event) this.setState (fName: event.target.value); , handleLNameChange: function (event) this.setState (lName: event.target.value); 

La oss prøve å gjengi tilstandsvariablene ved å bruke dem. Inne i FormComp HTML, legg til følgende element som gjengir statens variabler.

Ditt fulle navn er

this.state.fName this.state.lName

Lagre endringene og start webpackserveren på nytt. Prøv å skrive inn tekst i fornavn og etternavn tekstbokser, og du bør kunne se resultatene så snart du skriver.

Deretter la vi legge til et klikk-arrangement på send-knappen som vi har på vårt skjema.

Definer handleClick fungere inne i FormComp komponent. Ved å klikke på send-knappen, vil vi sammenkalle både fornavn og etternavn og vise hele navnet i skjemaet. Her er handleClick funksjon:

handleClick: function () var fullName = this.state.fName + "+ this.state.lName; this.setState (Name: fullName);,

Også, initialiserer Navn variabel i getInitialState funksjon.

getInitialState: funksjon () return lName: ", fName:", Name: ";

Vis det sammenkalte fulle navnet i skjemaet HTML.

Ditt fulle navn er

This.state.Name

Her er hvordan finalen FormComp komponent ser ut:

var Formatt = );, handleLNameChange: funksjon (hendelse) this.setState (lName: event.target.value);, handleClick: function () var fullName = this.state.fName + "+ this.state.fName +" + this.state. lName; this.setState (Name: fullName);, render: function () return ( 

TutsPlus - React Form Tutorial





Ditt fulle navn er

This.state.Name
); )

Lagre endringene ovenfor og start utviklingsserveren på nytt. Skriv inn begge navnene og trykk på send-knappen, og hele navnet skal vises.

Pakke det opp

I denne React-opplæringen lærte du hvordan du kom i gang med å lage React-apper og forstod de grunnleggende konseptene for hvordan å håndtere skjemaer og hendelser i en React-basert webapp. Jeg håper denne veiledningen vil være nyttig for deg i å komme i gang med å lage React-baserte apper.

Kildekode fra denne opplæringen er tilgjengelig på GitHub.

Gi oss beskjed om dine tanker, forslag eller eventuelle rettelser i kommentarene nedenfor. Fortsett å se på denne plassen for flere React-opplæringsprogrammer.