Im vorherigen Artikel haben wir nach der Konfiguration der Webpack- und React-Umgebung begonnen, die Anmeldeschnittstelle und die anschließende Funktion zum Springen zur Homepage zu schreiben. 1. Schauen Sie sich zunächst die gesamte Verzeichnisstruktur an. Denn beim Betrachten von Beispielen, die von anderen geschrieben wurden, können häufig unerwartete Probleme auftreten, weil Sie mit der Verzeichnisstruktur nicht vertraut sind. 2. Allgemeiner Ablauf: 1) Webpack-Konfigurationseintragsdatei src/index.js 3. Schreiben Sie HTML-Dateien. Darunter 1) wird die ID myContent verwendet, um die von uns geschriebenen Komponenten zu platzieren. <Text> <div id="meinInhalt"></div> <script src="./dist/bundle.js"></script> </body> 4. Die Anmeldeschnittstelle ist in login.js geschrieben1) Einführung der erforderlichen Module: antd (Ant Design) ist eine Komponentenbibliothek, und alle in unserem Projekt verwendeten Komponenten stammen daraus. (https://ant.design/index-cn) (Wenn antd.css nicht eingeführt wird, zeigt die Schnittstelle den Stil nicht an) React von „react“ importieren importiere {Formular,Eingabe,Symbol,Schaltfläche} von 'antd' // importiere {render} von „react-dom“ // importiere Axios von „Axios“ importiere '../node_modules/antd/dist/antd.css' //Wenn Sie diese Datei nicht importieren, wird der Antd-Stil nicht angezeigt importiere './style/login.css'; 2) Erstellen Sie eine Anmeldeformularkomponente. Neben den grundlegenden Formular-, Eingabe- und Schaltflächenkomponenten ist die Hauptfunktion zur Implementierung der Sprungfunktion history.push('/View'); (wobei history = this.props.history;). Der Pfad in der Push-Funktion ist der in der Routing-Tabelle () konfigurierte Pfad, und die beiden müssen übereinstimmen. Klasse LoginFrom erweitert React.Component{ Konstruktor(){ super() } handleSubmit = (e) => { //Vor dem Absenden prüfen, ob das Eingabefeld Fehler enthält e.preventDefault(); **let history = diese.props.history;** this.props.form.validateFields((Fehler,Werte)=>{ wenn (!Fehler) { console.log('Empfangene Werte der Form: ', Werte); **history.push('/Ansicht');** } }) } machen(){ //Die von Form.create gepackte Komponente verfügt über eine eigene this.props.form-Eigenschaft, die eine Reihe von APIs bereitstellt, darunter die folgenden 4 //getFieldDecorator wird für die bidirektionale Bindung mit dem Formular verwendet //isFieldTouched bestimmt, ob ein Eingabesteuerelement den Werterfassungszeitpunkt von getFieldDecorator options.trigger erfahren hat (der Zeitpunkt der Werterfassung des untergeordneten Knotens, der Standardwert ist onChange) //getFieldError ruft den Fehler eines Eingabesteuerelements ab //Ermittelt den Fehler einer Gruppe von Eingabesteuerelementen. Wenn keine Parameter übergeben werden, wird der Fehler aller Komponenten ermittelt. const { getFieldDecorator, getFieldsError, getFieldError, isFieldTouched } = this.props.form; const userNameError = isFieldTouched('Benutzername') && getFieldError('Benutzername'); const passWordError = isFieldTouched('Passwort') && getFieldError('Passwort'); zurückkehren ( <div Klassenname="Anmelden"> <div className="Anmeldeformular"> <div Klassenname="Login-Logo"> <div className="Anmeldename">MSPA</div> </div> <Formular beiSubmit={this.handleSubmit}> {/* Setze ein mit getFieldDecorator dekoriertes untergeordnetes Element in ein FromItem */} <Formular.Element validateStatus={userNameError ? 'error' : ''} //validateStatus ist der Validierungsstatus. Wenn nicht gesetzt, wird er automatisch entsprechend den Validierungsregeln generiert. Optional: 'success' 'warning' 'error' 'validating' > { getFieldDecorator('Benutzername',{ Regeln: [{erforderlich: wahr, Nachricht: "Bitte geben Sie Ihren Benutzernamen ein!"}] })( <Eingabepräfix={<Symboltyp="Benutzer" Stil={{ Farbe: 'rgba(0,0,0,.25)' }}/>} Platzhalter="Benutzername" /> ) } </Form.Item> <Formular.Element validateStatus={passWordError ? "Fehler" : ''} > { getFieldDecorator('Passwort',{ Regeln: [{erforderlich: wahr, Nachricht: "Bitte geben Sie Ihr Passwort ein!"}] })( <Eingabepräfix={<Symboltyp="Schloss" Stil={{ Farbe: 'rgba(0,0,0,.25)' }}/>} Platzhalter="Passwort" /> ) } </Form.Item> <Formular.Element> <Schaltfläche Typ="primär" htmlType="Senden" deaktiviert={hasErrors(getFieldsError)} >Anmelden</Button> </Form.Item> </Form> </div> </div> ) } } let LoginForm = Form.create()(LoginForm); Standard-Anmeldeformular exportieren; 3. Im zweiten Schritt haben wir die statische Seite geschrieben und der nächste Schritt besteht darin, die Routing-Tabelle** zu konfigurieren. **Wir haben die Routing-Informationen in index.js unter dem Router-Ordner konfiguriert. Chinesische Dokumentation zu react-router (https://react-guide.github.io/react-router-cn/), wo eine kurze Einführung in die Geschichte nachgeschlagen werden kann (https://www.jb51.net/article/208929.htm), die relativ einfach und schnell zu verstehen ist. Der Code lautet wie folgt: Die in den ersten drei Zeilen eingeführten Module sind Basismodule, und die später importierten Module sind vorgefertigte Komponenten: Auf der Startseite wird die Anmeldeoberfläche angezeigt, und nach erfolgreicher Anmeldung springt man zur myView-Oberfläche. myPicture und myDocument sind die Komponenten, die nach dem Klicken auf die myView-Oberfläche angezeigt werden. (Verschachtelte Routen) React von „react“ importieren importiere {HashRouter als Router, Route, Switch} aus ‚react-router-dom‘ importiere { createBrowserHistory} aus "history"; importiere MyView aus '../components/myView.js' LoginModule aus '../login.js' importieren importiere MeinBild aus '../components/myPicture' importiere MyDocument aus '../components/myDocument.js' exportiere Standardklasse MyRoute erweitert React.Component{ machen(){ zurückkehren( <Router-Verlauf={createBrowserHistory()}> <Schalter> <Route exakter Pfad="/" component={LoginModule}/> <MyView-Pfad='/View'-Komponente={MyDocument}> <Route path="/View/abc" component={MeinDokument} /> <Route path="/View/myPicture" component={MyPicture} /> </MeineAnsicht> </Schalter> </Router> ) } } 4. Als nächstes schreiben wir den folgenden Code in die Datei index.js (Eintragsdatei des Programms) im Ordner src. importiere MyRoute aus './router/index.js' importiere {render} von 'react-dom' React von „react“ importieren machen( <MeineRoute />, document.getElementById('meinInhalt') ); 5. Die Ergebnisse des Programmtests lauten wie folgt: 1) Anmeldeschnittstelle (login.js): 2) Geben Sie Benutzernamen und Passwort ein und klicken Sie auf die Anmeldeseite (myView.js): Dies ist das Ende dieses Artikels über die Verwendung von React zur Verwendung von Routing zur Weiterleitung zur Anmeldeoberfläche. Weitere Informationen zur Verwendung von React-Routing zur Weiterleitung zur Anmeldeseite finden Sie in früheren Artikeln auf 123WORDPRESS.COM oder in den folgenden verwandten Artikeln. Ich hoffe, Sie werden 123WORDPRESS.COM auch in Zukunft unterstützen! Das könnte Sie auch interessieren:
|
<<: Eine einfache Möglichkeit, das Passwort in MySQL 5.7 zu ändern
>>: Eine kurze Erläuterung, warum Daemon Off beim Ausführen von Nginx in Docker verwendet wird
Was ist ein Mata-Tag? Das <meta>-Element li...
Das Hinzufügen der richtigen VS Code-Erweiterung ...
Karten-Tags müssen paarweise vorkommen, d. h. <...
Funktion: Zur vorherigen Seite oder zur nächsten ...
Vor einiger Zeit stieß ich auf das Problem, dass ...
Der Befehl fd bietet eine einfache und unkomplizi...
Einführung in Vue Die aktuelle Ära der großen Fro...
1. Brigde——Bridge: VMnet0 wird standardmäßig verw...
Inhaltsverzeichnis 1. Einleitung 2. Analyse des f...
Hallo zusammen, heute lernen wir die Installation...
1. Hintergrund 1. Das Frontend verwendet vue + vu...
Dies liegt daran, dass der Datenbankserver so ein...
Was ist der Zweck der Erstellung einer eigenen Web...
MySQL sauber deinstallieren. Persönlich getestet,...
In diesem Artikelbeispiel wird der spezifische Co...