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
Mysqldump wird für logische Backups in MySQL verw...
Überblick Das Prototypmuster bezieht sich auf den...
In diesem Artikel finden Sie das Installations- u...
Vorwort MySQL ist eine relationale Datenbank mit ...
Inhaltsverzeichnis Gängige Array-Methoden concat(...
In diesem Artikelbeispiel wird der spezifische Im...
Der Grund für das Schreiben dieses Artikels beste...
Im Lernprogramm zum Docker-System haben wir geler...
In diesem Artikel finden Sie den spezifischen Cod...
Temporäre MySQL-Tabellen sind sehr nützlich, wenn...
Vorwort Dieser Artikel stellt hauptsächlich die r...
Inhaltsverzeichnis Vorwort 1. Installieren Sie da...
In diesem Artikelbeispiel wird der spezifische Ja...
Inhaltsverzeichnis 1. Anweisungen zum Rendern von...
Bevor die neue CSS-Eigenschaft „contain“ vorgeste...