1. Die Komponente First.js hat Unterkomponenten:Admin aus './Admin' importieren FormCom aus „./FormCom“ importieren importiere One aus './One' ButtonCom aus „./ButtonCom“ importieren importiere MenuCom aus './MenuCom' importiere StepsCom aus './StepsCom' importiere TabsCom aus './TabsCom' importiere TableCom aus './TableCom' importiere MessageCom aus './MessageCom' importiere NotificationCom aus './NotificationCom' importiere ProgressCom aus „./ProgressCom“ Importieren Sie SpinCom aus „./SpinCom“. BadgeCom aus „./BadgeCom“ importieren Der vollständige Code von First.js lautet wie folgt: React von „react“ importieren importiere { Layout, Menü } von „antd“; importiere { UserOutlined, LaptopOutlined, NotificationOutlined } aus '@ant-design/icons'; importiere { HashRouter, Route, Link } von 'react-router-dom' Admin aus './Admin' importieren FormCom aus „./FormCom“ importieren importiere One aus './One' ButtonCom aus „./ButtonCom“ importieren importiere MenuCom aus './MenuCom' importiere StepsCom aus './StepsCom' importiere TabsCom aus './TabsCom' importiere TableCom aus './TableCom' importiere MessageCom aus './MessageCom' importiere NotificationCom aus './NotificationCom' importiere ProgressCom aus „./ProgressCom“ Importieren Sie SpinCom aus „./SpinCom“. BadgeCom aus „./BadgeCom“ importieren const { Untermenü } = Menü; const { Header, Inhalt, Seiten } = Layout; exportiere Standardklasse First erweitert React.Component { Konstruktor() { super(); } //Nur das aktuelle übergeordnete Menü erweitern begin rootSubmenüSchlüssel = ['sub1', 'sub2', 'sub3']; Zustand = { openKeys: ['sub1'], }; beiÖffnenÄnderung = Schlüssel öffnen => { const latestOpenKey = openKeys.find(Schlüssel => this.state.openKeys.indexOf(Schlüssel) === -1); wenn (this.rootSubmenuKeys.indexOf(latestOpenKey) === -1) { this.setState({ openKeys }); } anders { dies.setState({ openKeys: letzterOffenerSchlüssel ? [letzterOffenerSchlüssel] : [], }); } }; //Nur das aktuelle übergeordnete Menü erweitern Ende rendern() { zurück (<div> <Layout> <HashRouter> <Header-Klassenname="Header"-Stil = {{ Position: 'fest', zIndex: 1, Breite: '100 %', Polsterung links: '20px'}}> <div className="logo" style={{fontSize: '32px', color: '#ffffff', fontWeight: 'bold'}}>React-App</div> <Menüthema="dunkel" Modus="horizontal" defaultSelectedKeys={['1']}> {/*<Menu.Item key="1">Navigation 1</Menu.Item> <Menu.Item key="2">Navigation 2</Menu.Item> <Menu.Item key="3">Navigation 3</Menu.Item>*/} </Menü> </Header> <Layout> <Seitenbreite={200} Klassenname="site-layout-background" Stil={{ Überlauf: „auto“, Höhe: '100vh', Position: 'fest', links: 0, }}> <Menü Thema="dunkel" Modus="inline" Standardmäßig ausgewählte Schlüssel = {['2']} Standard-OpenKeys = {['sub1']} Stil = {{ Höhe: '100 %', Polsterung oben: '60px', Rahmen rechts: 0 }} beiOpenChange={this.onOpenChange} openKeys={dieser.Zustand.openKeys} > <SubMenu key="sub1" icon={<UserOutlined />} title="subnav 1"> <Menu.Item key="1"><Link zu={`${this.props.match.path}/admin`}>Administrator</Link></Menu.Item> <Menu.Item key="2"><Link to={`${this.props.match.path}/form`}>Formular</Link></Menu.Item> <Menu.Item key="3"><Link to={`${this.props.match.path}/one`}>Eins</Link></Menu.Item> <Menu.Item key="4"><Link to={`${this.props.match.path}/menu`}>Menü</Link></Menu.Item> </Untermenü> <SubMenu key="sub2" icon={<LaptopOutlined />} title="subnav 2"> <Menu.Item key="5"><Link to={`${this.props.match.path}/step`}>Schritt</Link></Menu.Item> <Menu.Item key="6"><Link to={`${this.props.match.path}/tabs`}>Registerkarten</Link></Menu.Item> <Menu.Item key="7"><Link to={`${this.props.match.path}/table`}>Tabelle</Link></Menu.Item> <Menu.Item key="8"><Link to={`${this.props.match.path}/message`}>Nachricht</Link></Menu.Item> </Untermenü> <SubMenu key="sub3" icon={<NotificationOutlined />} title="subnav 3"> <Menu.Item key="9"><Link to={`${this.props.match.path}/notification`}>Benachrichtigung</Link></Menu.Item> <Menu.Item key="10"><Link to={`${this.props.match.path}/progress`}>ProgressCom</Link></Menu.Item> <Menu.Item key="11"><Link to={`${this.props.match.path}/spin`}>Drehen</Link></Menu.Item> <Menu.Item key="12"><Link to={`${this.props.match.path}/badge`}>Abzeichen</Link></Menu.Item> <Menu.Item key="13"><Link to={`${this.props.match.path}/button`}>Schaltfläche</Link></Menu.Item> </Untermenü> </Menü> </Sider> <Layoutstil={{ padding: '84px 20px 20px', marginLeft: 200}}> <Inhalt Klassenname = "Site-Layout-Hintergrund" Stil={{ Polsterung: 24, Marge: 0 }} > <Routenpfad={`${this.props.match.path}/admin`} genaue Komponente={Admin}></Route> <Routenpfad={`${this.props.match.path}/form`} Komponente={FormCom}></Route> <Routenpfad={`${this.props.match.path}/one`} Komponente={One}></Route> <Routenpfad={`${this.props.match.path}/menu`} Komponente={MenuCom}></Route> <Routenpfad={`${this.props.match.path}/step`} Komponente={StepsCom}></Route> <Routenpfad={`${this.props.match.path}/tabs`} Komponente={TabsCom}></Route> <Routenpfad={`${this.props.match.path}/table`} Komponente={TableCom}></Route> <Routenpfad={`${this.props.match.path}/message`} Komponente={MessageCom}></Route> <Routenpfad={`${this.props.match.path}/notification`} Komponente={NotificationCom}></Route> <Routenpfad={`${this.props.match.path}/progress`} Komponente={ProgressCom}></Route> <Routenpfad={`${this.props.match.path}/spin`} Komponente={SpinCom}></Route> <Routenpfad={`${this.props.match.path}/badge`} Komponente={BadgeCom}></Route> <Routenpfad={`${this.props.match.path}/button`} Komponente={ButtonCom}></Route> </Inhalt> </Layout> </Layout> </HashRouter> </Layout> </div>) } } In ${this.props.match.path} ist der Schlüssel. 2. Angenommen, es gibt auch eine Anmeldekomponente Login.js. Der Code lautet wie folgt:React von „react“ importieren importiere { Button } von 'antd'; exportiere Standardklasse Login erweitert React.Component { Konstruktor() { super(); } Umleitungshandle = () => { Konsole.log("aaa"); diese.props.history.push("/home"); } rendern() { return (<Button type="primary" onClick={()=>this.redirectHandle()}>Primärer Button</Button>) } } Vorausgesetzt, das React-Projekt wurde mit einem React-Scaffolding erstellt, legen Sie die Route in der Datei App.js im Verzeichnis src fest: rendern() { return (<HashRouter> <Schalter> <Route exact={true} path="/login" component={Login} /> <Routenpfad="/home" Komponente={Erste} /> <Redirect to='/login' /> {Andere Routen als /*/login und /home springen direkt zu /login*/} </Schalter> </HashRouter>) } Der vollständige Code von App.js lautet wie folgt: importiere React von „react“; importiere {Benachrichtigung} von 'antd' importiere { HashRouter, Route, Switch, Redirect } von „react-router-dom“; importiere First aus „./First“; Login aus „./Login“ importieren; importiere './App.css'; Klasse App erweitert React.Component { Konstruktor() { super(); this.openNotificationWithIcon = Typ => { Benachrichtigung[Typ]({ Nachricht: 'Benachrichtigungstitel', Beschreibung: 'Dies ist der Inhalt der Benachrichtigung. Dies ist der Inhalt der Benachrichtigung. Dies ist der Inhalt der Benachrichtigung.', }); } } KlickHandle() { console.log("geklickt!!!"); } rendern() { return (<HashRouter> <Schalter> <Route exact={true} path="/login" component={Login} /> {/**exact verhindert gemischte Routen, wie zum Beispiel: input 127.xx.xx.xx/home enthält die /login-Seite*/} <Routenpfad="/home" Komponente={Erste} /> <Weiterleitung zu='/login' /> </Schalter> </HashRouter>) } } Standard-App exportieren; Die Projektverzeichnisstruktur ist wie folgt: Der Projektvorschaueffekt ist wie folgt: Dies ist das Ende dieses Artikels über die Implementierung von React-Konfigurationsunterrouten. Weitere relevante Inhalte zu React-Konfigurationsunterrouten finden Sie in den vorherigen Artikeln von 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:
|
<<: Beispiel für die reguläre Umschreibmethode für Nginx Rewrite (Matching)
>>: Zusammenfassung von vier Situationen gemeinsamer Abfragen zwischen zwei Tabellen in MySQL
Detaillierte Erläuterung des MySql-Beispiels für ...
Lassen Sie uns zunächst über die Ausführungsreihe...
Es gibt im Internet viele Artikel zur MySQL-Insta...
Gelegentlich werden Sie in den Daten Zeichen wie ...
Inhaltsverzeichnis 1. Auf Ereignisse achten 2. Üb...
Dateiübertragung zwischen Windows und Linux (1) V...
1. Beschreibung Wenn wir in MySQL die Gesamtzahl ...
In diesem Artikelbeispiel wird der spezifische Co...
1. Alibaba Cloud wählt den geeigneten Cloud-Serve...
Inhaltsverzeichnis Anforderungsbeschreibung: Anfo...
Das Computersystem wurde neu installiert und die ...
1. Laden Sie zunächst die entsprechende Datenbank...
1. Überprüfen Sie die Zeitzone der Datenbank Vari...
Zuerst dachte ich, es läge an der Geschwindigkeit ...
Als häufig verwendete Datenbank erfordert MySQL v...