


Detaillierte Erläuterung der Schritte zur Verwendung von React-router v4
Dieses Mal werde ich Ihnen die Schritte zur Verwendung von React-router v4 ausführlich erläutern. Was sind die Vorsichtsmaßnahmen bei der Verwendung von React-router v4?
Der vielleicht beste Weg, React-Router zu lernen, besteht darin, React-Router-Dom v4 zu verwenden, um eine mehrseitige React-Anwendung zu schreiben. Diese Reaktionsanwendung umfasst Anmelde-, Registrierungs-, Homepage-, Kontakt- und andere Seiten. Aber werfen wir zunächst einen Blick auf das Konzept von React Router v4 und wie es sich von v3 unterscheidet.
React Router v4 vs. v3
v4 ist eine Neufassung von React Router und weist daher viele Unterschiede zu v3 auf. Die wichtigsten sind:
In React Router v4 ist das Routing nicht mehr zentralisiert. Es wird Teil des Anwendungslayouts und der Benutzeroberfläche.
Der vom Browser verwendete Router befindet sich in
react-router-dom
. Daher müssen Sie bei der Verwendung im Browser nurreact-router-dom
importieren.Neue Konzepte
BrowerRouter
undHashRouter
. Sie bedienen jeweils unterschiedliche Situationen. Weitere Informationen finden Sie weiter unten.verwendet
{props.children}
nicht mehr zur Verarbeitung verschachtelter Routen.V4-Routing ist standardmäßig nicht mehr exklusiv und weist mehrere Übereinstimmungen auf. v3 ist standardmäßig exklusiv und es wird nur eine Übereinstimmung verwendet.
react-router-dom
wird im React-Router für Browser verwendet. react-router
ist in die folgenden Teile unterteilt:
react-router ist ein gemeinsamer Teil für Browser und native Anwendungen.
react-router-dom ist für Browser.
react-router-native ist für native Anwendungen.
React-router vs. React-router-dom vs. React-router-native
react-router
ist der Kernteil. react-router-dom
Stellt benutzerdefinierte Komponenten bereit, die für die Verwendung im Browser erforderlich sind. react-router-native
stellt speziell die Teile bereit, die in nativen mobilen Anwendungen verwendet werden müssen. Wenn Sie in diesem Beispiel die Browserentwicklung implementieren, müssen Sie daher nur react-router-dom
installieren.
Installation
Wie oben erwähnt verwenden wir React, um Webanwendungen zu entwickeln, sodass wir nur react-router-dom
installieren müssen.
npm install react-router-dom --save
React-Router verstehen und verwenden
BrowserRouter
, das ist die Implementierung derRouter
-Schnittstelle. Sorgen Sie dafür, dass der Seiten- und Browserverlauf konsistent ist. Zum Beispiel:window.location
.HashRouter
ist dasselbe wie oben, außer dass es den Hash-Teil der URL verwendet, wie zum Beispiel:window.location.hash
.MemoryRouter
,NativeRouter
, verarbeiten das Routing in React Native.<a href="http://www.php.cn/wiki/188.html" target="_blank">Statischer<code><a href="http://www.php.cn/wiki/188.html" target="_blank">Static</a>Router
Router, handhaben statisches Routing, genau wie v3.
BrowserRouter vs. HashRouter
Unter den verschiedenen Routern von React-Router können <BrowserRouter>
und <HashRouter>
im Browser verwendet werden. Wenn Sie eine nicht statische Site verwenden und verschiedene URLs verarbeiten möchten, müssen Sie BrowserRouter
verwenden. Wenn Ihr Server hingegen nur statische URLs verarbeitet, verwenden Sie HashRouter
.
Route verstehen und verwenden
<Route> ist die nützlichste Komponente in React Router v4. Die dahinter stehende Verwendungsphilosophie ist ebenfalls sehr einfach. Wann immer Sie eine Komponente zeichnen müssen, wenn sie einem bestimmten Pfad entspricht, können Sie die Komponente Route
verwenden.
Route
Komponenten können die folgenden Attribute verwenden:
Pfadattribut, Typ Zeichenfolge, dessen Wert zum Abgleichen mit der URL verwendet wird.
Komponentenattribut, sein Wert ist eine Komponente. Diese Komponente wird gezeichnet, nachdem
path
erfolgreich abgeglichen wurde.genaues Attribut. Dieses Attribut wird verwendet, um anzugeben, ob es sich bei dieser Route um eine exklusive Übereinstimmung handelt.
striktes Attribut, dieses Attribut gibt an, dass der Pfad nur mit Pfaden übereinstimmt, die mit einem Schrägstrich enden.
还有其他的一些属性,可以用来代替component
属性。
render属性,一个返回React组件的方法。传说中的rencer-prop就是从这里来的。
children属性,返回一个React组件的方法。只不过这个总是会绘制,即使没有匹配的路径的时候。
多数的时候是用component
属性就可以满足。但是,某些情况下你不得不使用render
或children
属性。
match
location
history
如:
使用组件:
<Route exact path="/" component={HomePage} />
使用render
属性实现内联绘制:
<Route path="/" render={()=><p>HomePage</p>} />
来看哥更复杂的:
const FadingRoute = ({ component, ...rest }) => ( <Route {...rest} render={(props) => ( <FadeIn> <componnet {...props} /> </FadeIn> )} /> ) <FadingRoute path="/cool" component={Something} />
使用children
:
<ul> <ListItemLink to="/somewhere" /> <LinkItemLink to="/somewhere-else" /> </ul> const ListItemLink = ({to, ...rest}) => ( <Route path={to} children={({math}) => ( <li className={match ? 'active' : ''}> <Link to={to} {...rest} /> </li> )} /> )
更多关于react-router v4如何匹配路径的内容,请移步这里。
URL / Path / Route的参数
通常情况下,我们都会在路径里添加参数。这样方便在不同的组件之间传递一些必要的数据。那么我们如何才能获取到这些传递的参数,并传递给组件中呢?我们只需要在路径的最后加上/:param
。如:
<Route path="/:param1" component={HomePage} /> const HomePage = ({match}) => ( <p> <h1> parameter => {match.params.param1} </p> );
一旦有路径可以匹配成功,那么就会穿件一个拥有如下属性的对象,并传入绘制的组件里:
url: 匹配的url。
path:就是path。
isExact:如果
path
和当前的widnow.location
的path部分完全相同的话。params:在URL里包含的参数。
理解并使用Link
Link
是react router v4特有的一个组件。是用来代替上一版的anchor link。使用Link
可以在React应用的不同页面之间跳转。与unclor会重新加载整个页面不同,Link
只会重新加载页面里和当前url可以匹配的部分。
Link
组件需要用到to
属性,这个属性的值就是react router要跳转到的地址。如:
import { Link } from 'react-router-dom'; const Nav = () => ( <Link to '/'>Home</Link> );
当被点击的时候,会跳转到路径:/
。
to
属性的值可以是一个字符串,也可以是一个location(pathname, hash, state和search)对象。比如:
<Link to{{ pathname: '/me', search: '?sort=asc', hash: '#hash', state: { fromHome: true } }} />
Link
也可以使用replace
属性,如果点击的话,那么history里的当前领会被replace。
和
NavLink
是Link
的一个子类,在Link组件的基础上增加了绘制组件的样式,比如:
<NavLink to="/me" activeStyle={{SomeStyle}} activeClassName="selected"> My Profile </NavLink>
使用react router dom实现你的第一个demo
现在我们用react router dom来实现第一个demo。
首先,引入必要的组件。比如:Route
和BrowserRouter
。
import { BrowserRouter, Route } from 'react-router-dom';
接下来,我们创建一些组件和一些Html标签。同时我们用react router v4里的Link
和NavLink
组件。
const BaseLayout = () => ( <p className="base"> <header> <p>React Router v4 Browser Example</p> <nav> <ul> <li><Link ="/">Home</Link></li> <li><Link ="/about">About</Link></li> <li><Link ="/me">Profile</Link></li> <li><Link ="/login">Login</Link></li> <li><Link ="/register">Register</Link></li> <li><Link ="/contact">Contact</Link></li> </ul> </nav> </header> <p className="container"> <Route path="/" exact component={HomePage} /> <Route path="/about" component={AboutPage} /> <Route path="/contact" component={ContactPage} /> <Route path="/login" component={LoginPage} /> <Route path="/register" component={RegisterPage} /> <Route path="/me" component={ProfilePage} /> </p> <footer> React Router v4 Browser Example (c) 2017 </footer> </p> );
然后我们来创建需要的组件:
const HomePage = () => <p>This is a Home Page</p> const LoginPage = () => <p>This is a Login Page</p> const RegisterPage = () => <p>This is a Register Page</p> const ProfilePage = () => <p>This is a Profile Page</p> const AboutPage = () => <p>This is a About Page</p> const ContactPage = () => <p>This is a Contact Page</p>
最后,写App
组件。
const App = () => ( <BrowserRouter> <BaseLayout /> </BrowserRouter> ) render(<App />, document.getElementById('root'));
如你所见,react router v4的组件还非常的易用的。
理解和使用非排他的路由
在上例中,我们在HomePage
组件的路由里使用了属性exact
。
<Route path="/" exact component={HomePage} />
这是因为v4中的路由默认都是非排他的,这一点和v3的实现思路截然不同。如果没有exact
属性,HomePage
组件和其他的组件就会同事绘制在页面上。
如,当用户点了登录连接以后,"/"
和"/login"
都满足匹配条件,对应的登录组件和Home组件就会同时出现在界面上。但是,这不是我们期待的结果,所以我们要给"/"
path加上exact
属性。
现在我们来看看非排他的路由有什么优点。假如我们有一个子菜单组件需要显示在profile页面出现的时候也出现。我们可以简单的修改BasicLayout
来实现。
const BaseLayout = () => ( <p className="base"> <header> <p>React Router v4 Browser Example</p> <nav> <ul> <li><Link to="/">Home</Link></li> <li><Link to="/about">About</Link></li> <li> <Link to="/me">Profile</Link> <Route path="/me" component={ProfileMenu} /> </li> {/*略*/} </ul> </nav> </header> </p> );
这样我们就会看到对应于"/me"
路径的组件都绘制出来了。这就是非排他路由的好处。
理解排他路由
排他路由是react router v3的默认实现。只有第一个匹配的路由对应的组件会被绘制。这一点也可以用react router v4的Switch
组件来实现。在Switch
组件中,只有第一个匹配的路由<Route>
或者<Redirect>
会被绘制:
import { Switch, Route } from 'react-router';<Route exact path="/" component={HomePage} />
浏览器历史
react router v4中,提供了一个history
对象。这个对象包含了多个api,可以用来操作浏览器历史等。
你也可以在React应用里使用history
对象的方法:
history.push("/my-path") history.replace("/my-path")
用另外的方法可以写成:
<Link to="/my-path" /> <Redirect to="my-path" />
使用<Redirect>组件实现重定向
无论何时你要重定向到另外一个地址的时候,都可以使用Redirect
组件:
<Redirect to {{ pathname: '/register', search: '?utm=something', state: { referrer: someplage.com } }}>
或者,更为简单的:
<Redirect to="register" />
最后
react router v4让开发react应用变得更加的简单。让react应用内的页面跳转更加简单。你只需要声明一个BrowserRouter
或者HashRouter
,然后在它的内部放上一系列的Route
组件,这些主键只要包含path
和component
属性。无论何时有了匹配的路由,那么它就会进行非排他的绘制(所有匹配的路由都会绘制)。你也可以把Route
放在Switch
组件里来实现排他的绘制(只有第一个匹配的路由会被绘制)。你可以在路径中传递参数,match
对象会保留这些参数。最后,所有在web中使用的路由组件都包含在react-router-dom
中。只需要引入react-router-dom
就可以使用。
相信看了本文案例你已经掌握了方法,更多精彩请关注php中文网其它相关文章!
推荐阅读:
Chart.js 轻量级HTML5图表绘制工具库使用步骤详解
Das obige ist der detaillierte Inhalt vonDetaillierte Erläuterung der Schritte zur Verwendung von React-router v4. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

AI Hentai Generator
Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

Heiße Werkzeuge

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen



CrystalDiskMark ist ein kleines HDD-Benchmark-Tool für Festplatten, das schnell sequentielle und zufällige Lese-/Schreibgeschwindigkeiten misst. Lassen Sie sich als Nächstes vom Redakteur CrystalDiskMark und die Verwendung von CrystalDiskMark vorstellen ). Zufällige I/O-Leistung. Es ist eine kostenlose Windows-Anwendung und bietet eine benutzerfreundliche Oberfläche und verschiedene Testmodi zur Bewertung verschiedener Aspekte der Festplattenleistung. Sie wird häufig in Hardware-Reviews verwendet

foobar2000 ist eine Software, die Ihnen jederzeit Musik aller Art mit verlustfreier Klangqualität bietet Spielen Sie das erweiterte Audio auf dem Computer ab, um ein bequemeres und effizienteres Musikwiedergabeerlebnis zu ermöglichen. Das Interface-Design ist einfach, klar und benutzerfreundlich. Es nimmt einen minimalistischen Designstil an, ohne übermäßige Dekoration Es unterstützt außerdem eine Vielzahl von Skins und Themes, personalisiert Einstellungen nach Ihren eigenen Vorlieben und erstellt einen exklusiven Musikplayer, der die Wiedergabe mehrerer Audioformate unterstützt. Außerdem unterstützt es die Audio-Gain-Funktion zum Anpassen der Lautstärke Passen Sie die Lautstärke entsprechend Ihrem Hörzustand an, um Hörschäden durch zu hohe Lautstärke zu vermeiden. Als nächstes lass mich dir helfen

NetEase Mailbox ist eine von chinesischen Internetnutzern weit verbreitete E-Mail-Adresse und hat mit seinen stabilen und effizienten Diensten schon immer das Vertrauen der Benutzer gewonnen. NetEase Mailbox Master ist eine E-Mail-Software, die speziell für Mobiltelefonbenutzer entwickelt wurde. Sie vereinfacht das Senden und Empfangen von E-Mails erheblich und macht unsere E-Mail-Verarbeitung komfortabler. Wie Sie NetEase Mailbox Master verwenden und welche spezifischen Funktionen es bietet, wird Ihnen der Herausgeber dieser Website im Folgenden ausführlich vorstellen und hofft, Ihnen weiterzuhelfen! Zunächst können Sie die NetEase Mailbox Master-App im Mobile App Store suchen und herunterladen. Suchen Sie im App Store oder im Baidu Mobile Assistant nach „NetEase Mailbox Master“ und befolgen Sie dann die Anweisungen zur Installation. Nachdem der Download und die Installation abgeschlossen sind, öffnen wir das NetEase-E-Mail-Konto und melden uns an. Die Anmeldeschnittstelle ist wie unten dargestellt

Cloud-Speicher sind heutzutage aus unserem täglichen Leben und Arbeiten nicht mehr wegzudenken. Als einer der führenden Cloud-Speicherdienste in China hat Baidu Netdisk mit seinen leistungsstarken Speicherfunktionen, der effizienten Übertragungsgeschwindigkeit und dem komfortablen Bedienerlebnis die Gunst einer großen Anzahl von Benutzern gewonnen. Und egal, ob Sie wichtige Dateien sichern, Informationen teilen, Videos online ansehen oder Musik hören möchten, Baidu Cloud Disk kann Ihre Anforderungen erfüllen. Viele Benutzer verstehen jedoch möglicherweise nicht die spezifische Verwendung der Baidu Netdisk-App. Dieses Tutorial führt Sie daher im Detail in die Verwendung der Baidu Netdisk-App ein. Wenn Sie immer noch verwirrt sind, folgen Sie bitte diesem Artikel, um mehr im Detail zu erfahren. So verwenden Sie Baidu Cloud Network Disk: 1. Installation Wählen Sie beim Herunterladen und Installieren der Baidu Cloud-Software zunächst die benutzerdefinierte Installationsoption aus.

Das Windows-Betriebssystem ist eines der beliebtesten Betriebssysteme der Welt und seine neue Version Win11 hat viel Aufmerksamkeit erregt. Im Win11-System ist die Erlangung von Administratorrechten ein wichtiger Vorgang. Mit Administratorrechten können Benutzer weitere Vorgänge und Einstellungen auf dem System durchführen. In diesem Artikel wird ausführlich beschrieben, wie Sie Administratorrechte im Win11-System erhalten und wie Sie Berechtigungen effektiv verwalten. Im Win11-System werden Administratorrechte in zwei Typen unterteilt: lokaler Administrator und Domänenadministrator. Ein lokaler Administrator verfügt über vollständige Administratorrechte für den lokalen Computer

MetaMask (auf Chinesisch auch Little Fox Wallet genannt) ist eine kostenlose und beliebte Verschlüsselungs-Wallet-Software. Derzeit unterstützt BTCC die Bindung an die MetaMask-Wallet. Nach der Bindung können Sie sich mit der MetaMask-Wallet schnell anmelden, Werte speichern, Münzen kaufen usw. und bei der erstmaligen Bindung einen Testbonus von 20 USDT erhalten. Im BTCCMetaMask-Wallet-Tutorial stellen wir detailliert vor, wie man MetaMask registriert und verwendet und wie man das Little Fox-Wallet in BTCC bindet und verwendet. Was ist die MetaMask-Wallet? Mit über 30 Millionen Nutzern ist MetaMask Little Fox Wallet heute eines der beliebtesten Kryptowährungs-Wallets. Die Nutzung ist kostenlos und kann als Erweiterung im Netzwerk installiert werden

Detaillierte Erläuterung der Divisionsoperation in OracleSQL In OracleSQL ist die Divisionsoperation eine häufige und wichtige mathematische Operation, die zur Berechnung des Ergebnisses der Division zweier Zahlen verwendet wird. Division wird häufig in Datenbankabfragen verwendet. Daher ist das Verständnis der Divisionsoperation und ihrer Verwendung in OracleSQL eine der wesentlichen Fähigkeiten für Datenbankentwickler. In diesem Artikel werden die relevanten Kenntnisse über Divisionsoperationen in OracleSQL ausführlich erörtert und spezifische Codebeispiele als Referenz für die Leser bereitgestellt. 1. Divisionsoperation in OracleSQL

Apple hat am Dienstag das iOS 17.4-Update veröffentlicht, das eine Reihe neuer Funktionen und Korrekturen für iPhones bringt. Das Update enthält neue Emojis und EU-Nutzer können diese auch aus anderen App-Stores herunterladen. Darüber hinaus stärkt das Update auch die Kontrolle der iPhone-Sicherheit und führt weitere Einstellungsoptionen für den „Schutz gestohlener Geräte“ ein, um Benutzern mehr Auswahl und Schutz zu bieten. „iOS17.3 führt zum ersten Mal die Funktion „Schutz vor gestohlenen Geräten“ ein, die den vertraulichen Informationen der Benutzer zusätzliche Sicherheit verleiht. Wenn der Benutzer nicht zu Hause oder an anderen vertrauten Orten ist, erfordert diese Funktion, dass der Benutzer zum ersten Mal biometrische Informationen eingibt Zeit und nach einer Stunde müssen Sie Informationen erneut eingeben, um auf bestimmte Daten zuzugreifen und diese zu ändern, z. B. um Ihr Apple-ID-Passwort zu ändern oder den Schutz vor gestohlenen Geräten zu deaktivieren.
