I den här handledningen lär du dig information om formulär och händelser i React. Vi börjar med att skapa en enkel React-baserad app och sedan lägga till ett formulär och några element. Då ser vi hur man lägger till händelser i formulärelementen.
Om du är nybörjare med React, skulle jag rekommendera att läsa den inledande handledningen om React för att komma igång.
Låt oss börja med att ställa in vår React-webbapplikation. Skapa en projektmapp som heter ReactFormApp
. Inuti ReactFormApp
, skapa en fil som heter index.html
och lägg till följande HTML-kod:
TutsPlus - React Forms & Events
Initiera projektet med Node Package Manager (npm).
npm init
Fyll i de uppgifter du behöver och du borde ha package.json
filen inuti ReactFormApp
mapp.
"namn": "reaktformapp", "version": "1.0.0", "beskrivning": "", "huvud": "index.js", "scripts": "test": "echo \" fel : inget test specificerat \ "&& avsluta 1", "författare": "", "licens": "ISC"
Installera reagera
och reagerar-dom
beroenden med hjälp av npm.
npm installera reagera reagera dom - save
Installera det nödvändiga babelpaketet med npm och spara det till package.json
fil.
npm installera - save-dev webbpaket webpack-dev-server babel-core babel-loader babel-preset-reagerar babel-preset-es2015
babel
paket krävs för att omvandla JSX-koden till JavaScript.
Skapa en webpack-konfigurationsfil för att hantera webpackkonfigurationerna. Skapa en fil som heter webpack.config.js
och lägg till följande konfigurationer:
module.exports = entry: './app.js', output: filnamn: 'bundle.js',, modul: loaders: [exclude: / node_modules /, loader: 'babel-loader? ] = es2015 och förinställningar [] = reagera ']
app.js
är filen där vår React-kod kommer att ligga. Skapa en fil som heter app.js
inuti ReactFormApp
mapp. Importera de nödvändiga reaktionsbiblioteken i app.js
. Skapa en komponent som heter App
ha en div med lite text. Rendera komponenten med hjälp av renderingsmetoden. Så här är det grundläggande app.js
filen skulle se ut:
import Reakt från "reagera" import render från "react-dom" var App = React.createClass (render: function () return (TutsPlus - Välkommen till React Form App); ); göra((), Document.getElementById ( 'app'))
Spara ändringarna och försök ladda om webpack-utvecklingsservern.
Webpack-dev-server
När servern har startats om igen ska du kunna se React-appen som körs på http: // localhost: 8080 /.
Vi har den grundläggande React-appen igång, Låt oss gå vidare till nästa steg och försöka skapa en formulärkomponent med hjälp av JSX-koden i app.js
.
Skapa en komponent som heter FormComp
inuti app.js
.
var FormComp = React.createClass (render: function () return ();)
Inom renderfunktionen för FormComp definierar vi HTML-koden för att skapa en form. Vi lägger in ett par etiketter, inmatningsrutor och en knapp för att klicka. Så här ser det ut:
var FormComp = React.createClass (render: function () return (); )TutsPlus - React Form Tutorial
Återge formulärkomponenten FormComp
för att visa formuläret inuti index.html
.
göra((), Document.getElementById ( 'app'))
Spara ändringarna och starta om webpackservern och du ska kunna se formuläret.
Vår reaktion är i god form. För att få det att fungera måste vi lägga till händelser i formuläret.
Vi börjar med att lägga till statliga variabler på varje inmatningsrutan så att vi kan läsa värdena för inmatningsrutorna. Låt oss ange tillståndsvariablerna för förnamn och sista inmatningsfält.
Se till att du anger det ursprungliga tillståndet för ovanstående variabler. Definiera getInitialState
funktionen inuti FormComp
komponent och initiera båda variablerna.
getInitialState: function () return lName: ", fName:"; ,
Vi måste hantera händelsernas omväxlingshändelse och ange tillståndsvariablerna när värdet i textrutorna ändras. Definiera så en onChange
händelse på ingångslådorna.
Definiera onChange
funktioner inuti FormComp
och ställ in tillståndsvariablerna.
handleFNameChange: funktion (händelse) this.setState (fName: event.target.value); , handleLNameChange: function (event) this.setState (lName: event.target.value);
Låt oss försöka göra statliga variabler genom att använda dem. Inuti FormComp
HTML, lägg till följande element som ger statliga variabler.
Ditt fullständiga namn är
this.state.fName this.state.lName
Spara ändringarna och starta om webpackservern. Försök att skriva in text i förnamn och efternamn textrutor, och du ska kunna se resultaten så snart du skriver.
Låt oss sedan lägga till en klickhändelse på knappen Skicka som vi har på vår blankett.
Definiera handleClick
funktionen inuti FormComp
komponent. När vi klickar på Skicka-knappen sammanfogar vi både förnamn och efternamn och visar hela namnet inuti formuläret. Här är handleClick
fungera:
handleClick: function () var fullName = this.state.fName + "+ this.state.lName; this.setState (Namn: fullName);,
Initiera också namn
variabel i getInitialState
fungera.
getInitialState: function () return lName: ", fName:", Name: ";
Visa det sammanförda fullständiga namnet i formuläret HTML.
Ditt fullständiga namn är
This.state.Name
Så här är finalen FormComp
komponent ser ut:
var FormComp = React.createClass (getInitialState: function () return lName: ", fName:", Name: ";, handleFNameChange: funktion (händelse) this.setState (fName: event.target.value );, handtagLNameChange: funktion (händelse) this.setState (lName: event.target.value); handtagKlicka: funktion () var fullName = this.state.fName + "+ this.state.fName +" + this.state. lName; this.setState (Name: fullName);, render: function () return (); )TutsPlus - React Form Tutorial
Ditt fullständiga namn är
This.state.Name
Spara ovanstående ändringar och starta om utvecklingsservern. Ange båda namnen och tryck på Skicka-knappen och hela namnet ska visas.
I den här React-handledningen lärde du dig hur du började skapa React-appar och förstod de grundläggande begreppen om hur man hanterar former och händelser i en React-baserad webbapp. Jag hoppas att denna handledning kommer att vara till hjälp för dig när du kommer igång med att skapa React-baserade appar.
Källkod från denna handledning finns på GitHub.
Låt oss veta dina tankar, förslag eller eventuella korrigeringar i kommentarerna nedan. Fortsätt att titta på detta utrymme för mer React-tutorials.