InstallierenGeben Sie zur Installation den folgenden Befehl ein: // npm npm installiere react-router-dom //Garn Garn fügt React-Router-Dom hinzu React-Router-bezogene Tags Es gibt acht häufig verwendete Komponenten von importieren { BrowserRouter, HashRouter, Route, Umleiten, Schalten, Link, NavLink, mitRouter, } von „react-router-dom“ Einfacher RoutensprungImplementieren Sie einen einfachen Routing-Sprung der ersten Ebene importieren { BrowserRouter als Router, Route, Link } von „react-router-dom“ Home aus './home' importieren Importieren Sie Info aus „./about“. Funktion App() { zurückkehren ( <div Klassenname="App"> <Router> <Link to="/home" className="link">Zur Startseite springen</Link> <Link to="/about" className="link">Zur Info-Seite springen</Link> <Routenpfad="/home" Komponente={Home}/> <Routenpfad="/about" component={Über}/> </Router> </div> ); } Standard-App exportieren; Die Wirkung ist wie folgt: Zusammenfassung der wichtigsten Punkte:
Verschachtelter Routensprung Das Routing-Matching-Level von Beispielsweise werden in der importieren { BrowserRouter als Router, Route, Link, } von „react-router-dom“ Home aus './home' importieren Importieren Sie Info aus „./about“. Funktion App() { zurückkehren ( <div Klassenname="App"> <Router> <Link to="/home">Zur Startseite</Link> <Link to="/about">Zur Infoseite</Link> <Routenpfad="/home" Komponente={Home}/> <Routenpfad="/about" component={Über}/> </Router> </div> ); } Standard-App exportieren; Anschließend möchten wir in der React von „react“ importieren importieren { Route, Link, } von „react-router-dom“ importiere One aus './one' importiere Zwei aus './two' Funktion Home () { zurückkehren ( <> Ich bin die Startseite <Link to="/home/one">Zur Startseite/einer Seite springen</Link> <Link to="/home/two">Zur Home/Two-Seite gehen</Link> <Routenpfad="/home/one" Komponente={One}/> <Routenpfad="/home/zwei" Komponente={Zwei}/> </> ) } Standard-Startseite exportieren Besonderer Hinweis: Der sekundäre Routenpfad, der der Routing-Komponente Dynamische Verknüpfung importieren { BrowserRouter als Router, Route, NavLink } von „react-router-dom“ Home aus './home' importieren Importieren Sie Info aus „./about“. Funktion App() { zurückkehren ( <div Klassenname="App"> <Router> <NavLink to="/home" className="link">Zur Startseite springen</NavLink> <NavLink to="/about" className="link">Zur Info-Seite springen</NavLink> <Routenpfad="/home" Komponente={Home}/> <Routenpfad="/about" component={Über}/> </Router> </div> ); } Standard-App exportieren; /* Den Stil der aktiven Klasse festlegen */ .aktiv { Schriftstärke: schwarz; Farbe: rot; } Die Wirkung ist wie folgt: Routenanpassungsoptimierung Wenn Sie auf den Umleitungslink klicken, wird automatisch versucht, alle Unter normalen Umständen müssen Sie nur eine Regel abgleichen und rendern. Das heißt, nach einer erfolgreichen Übereinstimmung müssen keine weiteren Übereinstimmungsversuche unternommen werden. In diesem Fall können Sie importieren { BrowserRouter als Router, Route, NavLink, Schalten, } von „react-router-dom“ Home aus './home' importieren Importieren Sie Info aus „./about“. Funktion App() { zurückkehren ( <div Klassenname="App"> <Router> <NavLink to="/home" className="link">Zur Startseite springen</NavLink> <NavLink to="/about" className="link">Zur Info-Seite springen</NavLink> <Schalter> <Routenpfad="/home" Komponente={Home}/> <Routenpfad="/about" component={Über}/> <Routenpfad="/home" Komponente={Home}/> <Routenpfad="/home" Komponente={Home}/> {/* Zehntausend Routenkomponenten werden hier weggelassen*/} <Routenpfad="/home" Komponente={Home}/> </Schalter> </Router> </div> ); } Standard-App exportieren; Die Wirkung ist wie folgt: Zusammenfassung der wichtigsten Punkte: Durch Platzieren mehrerer Umleiten Wenn beim Seitensprung der Sprunglink mit keiner importieren { BrowserRouter als Router, Route, NavLink, Schalten, Umleiten, } von „react-router-dom“ Home aus './home' importieren Importieren Sie Info aus „./about“. Funktion App() { zurückkehren ( <div Klassenname="App"> <Router> <NavLink to="/home" className="link">Zur Startseite springen</NavLink> <NavLink to="/about" className="link">Zur Info-Seite springen</NavLink> <NavLink to="/shop" className="link">Zur Shop-Seite springen</NavLink> {/* Klicken Sie, um zu /shop zu springen, aber der Pfad ist nicht festgelegt*/} <Schalter> <Routenpfad="/home" Komponente={Home}/> <Routenpfad="/about" component={Über}/> <Redirect to="/home" /> {/* Wenn alle oben genannten Routenkomponenten nicht übereinstimmen, leiten Sie zu /home weiter */} </Schalter> </Router> </div> ); } Standard-App exportieren; Die Wirkung ist wie folgt: Routing-Parameter Alle von der Route übergebenen Parameter werden in Es gibt drei Möglichkeiten, Parameter per Routing zu übergeben. Sehen wir sie uns der Reihe nach an. Der erste Die erste besteht darin, Parameter auf dem Sprungpfad importieren { BrowserRouter als Router, Route, NavLink, Schalten, } von „react-router-dom“ Home aus './home' importieren Importieren Sie Info aus „./about“. Funktion App() { zurückkehren ( <div Klassenname="App"> <Router> {/* Der Pfad /home enthält zwei Parameter, Zhang San und 18*/} <NavLink to="/home/张三/18" className="link">Zur Startseite springen</NavLink> <NavLink to="/about" className="link">Zur Info-Seite springen</NavLink> <Schalter> {/* Empfängt die Parameter Name und Alter an derselben Stelle im passenden Pfad /home*/} <Routenpfad="/home/:name/:age" Komponente={Home}/> <Routenpfad="/about" component={Über}/> </Schalter> </Router> </div> ); } Standard-App exportieren; Versuchen Sie, Wie Sie sehen, werden die Parameter der ersten Methode über Der Zweite Die zweite Möglichkeit besteht darin, Parameter zu übergeben, die mit importieren { BrowserRouter als Router, Route, NavLink, Schalten, } von „react-router-dom“ Home aus './home' importieren Importieren Sie Info aus „./about“. Funktion App() { zurückkehren ( <div Klassenname="App"> <Router> {/* Übergeben Sie nach dem Sprungpfad zwei Parameter, die mit einem Fragezeichen beginnen, nämlich name=张三, age=18 */} <NavLink to="/home?name=张三&age=18" className="link">Zur Startseite springen</NavLink> <NavLink to="/about" className="link">Zur Info-Seite springen</NavLink> <Schalter> {/* Hier ist kein Empfangsvorgang erforderlich*/} <Routenpfad="/home" Komponente={Home}/> <Routenpfad="/about" component={Über}/> </Schalter> </Router> </div> ); } Standard-App exportieren; Versuchen Sie, Wie Sie sehen, werden die Parameter der zweiten Methode über Der dritte Die dritte Möglichkeit besteht darin, die importieren { BrowserRouter als Router, Route, NavLink, Schalten, } von „react-router-dom“ Home aus './home' importieren Importieren Sie Info aus „./about“. Funktion App() { zurückkehren ( <div Klassenname="App"> <Router> {/* Beschreibe das „to“-Attribut in Form eines Objekts. Das Pfadattribut heißt „pathname“ und das Parameterattribut „state“ */} <NavLink to={{pathname: "/home", state: {name: '张三', age: 18}}} className="link">Zur Startseite springen</NavLink> <NavLink to="/about" className="link">Zur Info-Seite springen</NavLink> <Schalter> {/* Es ist nicht nötig, hier speziell Attribute zu empfangen*/} <Routenpfad="/home" Komponente={Home}/> <Routenpfad="/about" component={Über}/> </Schalter> </Router> </div> ); } Standard-App exportieren; Versuchen Sie, Wie Sie sehen, werden die Parameter der dritten Methode über Funktionales Routing Das Obige springt hauptsächlich über Manchmal benötigen wir jedoch eine flexiblere Möglichkeit zum Routenspringen, z. B. das Aufrufen einer Funktion zum Routenspringen jederzeit und überall. Dies wird als funktionales Routing bezeichnet. Beim funktionalen Routing werden drücken Die Legen Sie beispielsweise in der Routing-Komponente React von „react“ importieren Funktion Home (Requisiten) { let pushLink = () => { props.history.push('/über') } zurückkehren ( <div Klassenname="a"> Ich bin auf der Startseite <button onClick={pushLink}> Zur Infoseite springen </button> </div> ) } Standard-Startseite exportieren Der Sprungeffekt ist wie folgt: Wie Sie sehen, können Sie nach dem Springen durch die ersetzen Ändern des Codes React von „react“ importieren Funktion Home (Requisiten) { let replaceLink = () => { props.history.replace('/über') } zurückkehren ( <div Klassenname="a"> Ich bin auf der Startseite <button onClick={replaceLink}> Zur Infoseite springen </button> </div> ) } Standard-Startseite exportieren Der Sprungeffekt ist wie folgt: Wie Sie sehen, ist der anfängliche Pfad „/“, dann springt er zu „/home“ und klickt anschließend auf die Schaltfläche, um über die weiter Der Aufruf der Methode Ich werde hier keine weiteren Demonstrationen durchführen. geh zurück Der Aufruf der Methode gehen Wie der Name schon sagt, wird die Diese Methode akzeptiert einen Parameter (Parametertyp ist
Gemeinsame Komponenten verwenden RoutingHier gibt es zwei Konzepte: normale Komponenten und Routing-Komponenten Die von Beispielsweise im folgenden Code: importieren { BrowserRouter als Router, Route, NavLink, Schalten, } von „react-router-dom“ Home aus './home' importieren exportiere Standardfunktion App() { zurückkehren ( <div Klassenname="App"> <Router> <NavLink to='/home' className="link">Zur Startseite springen</NavLink> <Schalter> <Routenpfad="/home" Komponente={Home}/> </Schalter> </Router> </div> ); } Der größte Unterschied zwischen Routing-Komponenten und normalen Komponenten besteht darin, ob An diesem Punkt stellt So verwenden Sie es: importieren { BrowserRouter als Router, Route, NavLink, Schalten, withRouter, // 1. Einführung von witRouter } von „react-router-dom“ Importieren Sie Info aus „./about“. Funktion App(Requisiten) { console.log(props); // 3. Versuchen Sie, die Requisiten der normalen Komponenten-App zu drucken, und stellen Sie fest, dass die Requisiten bereits Inhalt enthalten, d. h. die normale Komponente kann auch dieselbe Funktion haben wie die Routing-Komponente return ( <div Klassenname="App"> <Router> <NavLink to="/about" className="link">Zur Info-Seite springen</NavLink> <Schalter> <Routenpfad="/about" component={Über}/> </Schalter> </Router> </div> ); } export default withRouter(App); // 2. Verwenden Sie die Methode withRouter, um normale Komponenten zu umschließen Auffüllenersetzen Beim funktionalen Routing gibt es zwei Haupttypen von Sprüngen: importieren { BrowserRouter als Router, Route, Link } von „react-router-dom“ Home aus './home' importieren Importieren Sie Info aus „./about“. Funktion App() { zurückkehren ( <div Klassenname="App"> <Router> <Link to="/home" className="link">Zur Startseite springen</Link> <Link to="/about" className="link">Zur Info-Seite springen</Link> <Route path="/home" component={Home} replace={true}/> {/* Ersetzen ist wahr, Sprungtyp ist Ersetzen */} <Route path="/about" component={About} replace={false}/> {/* Ersetzen ist falsch, Sprungtyp ist Push */} </Router> </div> ); } Standard-App exportieren; Die Route-Komponente verfügt über ein Ersetzungsattribut, mit dem der Umleitungstyp festgelegt werden kann. Wenn der Wert „true“ ist, lautet der Umleitungstyp „replace“; wenn er „false“ ist, lautet der Umleitungstyp „push“. genau Die Standardroutenübereinstimmung ist Fuzzy-Matching. Beispiel: importieren { BrowserRouter als Router, Route, Link, } von „react-router-dom“ Home aus './home' importieren Importieren Sie Info aus „./about“. Funktion App() { zurückkehren ( <div Klassenname="App"> <Router> <Link to="/home/abc">Zur Startseite springen</Link> {/* Zu /home/abc springen, aber unter Home gibt es keine abc-Routingkomponente*/} <Link to="/about/abc">Zur Info-Seite springen</Link> {/* Zu /about/abc springen, aber unter „Home“ gibt es keine abc-Routing-Komponente*/} <Route path="/home" component={Home} /> {/* Die Routenübereinstimmungsregel ist /home, das genaue Attribut ist nicht festgelegt und die aktuelle Übereinstimmung ist unscharf*/} <Route path="/about" component={About} exact/> {/* Die Routenübereinstimmungsregel ist /about, das genaue Attribut ist festgelegt und die aktuelle Übereinstimmung ist exakt*/} </Router> </div> ); } Standard-App exportieren; Die Wirkung ist wie folgt: Wie in der Abbildung zu sehen ist, ist beim Springen zu Zusammenfassen:
Oben finden Sie den detaillierten Inhalt des unkomplizierten Schnellstarts mit React Routing. Weitere Informationen zum Schnellstart mit React Routing finden Sie in den anderen verwandten Artikeln auf 123WORDPRESS.COM! Das könnte Sie auch interessieren:
|
<<: Detaillierte Erläuterung der passwortfreien SSH-Anmeldekonfiguration unter Linux
>>: Grafisches Tutorial zur Installation und Konfiguration von MySQL 5.7.20 unter Windows
In dieser Lesenotiz werden hauptsächlich die Vorg...
Als ich kürzlich an einem Projekt arbeitete, wurd...
Dieser Artikel beschreibt anhand von Beispielen, ...
Sie können Docker-Container auf verschiedene Arte...
In diesem Artikel wird der spezifische JavaScript...
Ich habe viele Tutorials gelesen, aber festgestel...
Verwenden Sie runlike, um die Docker Run-Startpar...
Vorwort Ich hatte zuvor die 2375 Remote API von D...
Dieser Artikel beschreibt die MySQL-Benutzerverwa...
Aus beruflichen Gründen musste ich kürzlich Zahle...
Geschäftsszenario: Verwenden Sie den EL-Dialog vo...
1. Javascript kehrt zur vorherigen Seite zurück hi...
1. E-Commerce-Symbole 2. Symbol Süßigkeiten 2 3. ...
Inhaltsverzeichnis 1. Einleitung 2. Grundkonzepte...
Beim Öffnen ausländischer Websites werden häufig ...