第一步:引包兩個
命令:cnpm i -S react-router react-router-dom
第二步:用路由管理APP頁面
1.創建主路由管理頁面,在這里使用了路由嵌套
1 import React, { Component } from 'react'; 2 import { Route, BrowserRouter } from 'react-router-dom' 3 import App from '../App' 4 import SubRouter from './SubRouter' //二級路由 5 6 export default class ReactApp extends Component { 7 render() { 8 return ( 9 <BrowserRouter> 10 <App> 11 {/* 這里為了分離得徹底,使用組件嵌套,app組件跳到SubRouter組件*/} 12 <Route path="/" component={SubRouter}></Route> 13 </App> 14 </BrowserRouter> 15 ) 16 } 17 }
2.創建二級路由頁面,引入組件
1 import React, { Component } from 'react' 2 import { Route, Switch } from 'react-router-dom' 3 import Home from '../Component/Home' 4 import Movie from '../Component/Movie' 5 import About from '../Component/About' 6 7 export default class SubRouter extends Component { 8 render() { 9 return ( 10 // 路由配置 11 <Switch> 12 <Route exact path="/" component={Home}></Route> 13 <Route exact path='/movie' component={Movie}></Route> 14 <Route exact path="/about" component={About}></Route> 15 </Switch> 16 ) 17 } 18 }
3.在App頁面給顯示位置,以及設置點擊跳轉
1 import React, { Component } from 'react'; 2 import { Link } from 'react-router-dom' 3 export default class App extends Component { 4 render() { 5 return ( 6 <div> 7 {/* 點擊路由跳轉,使用react-router-dom的Link */} 8 <ul> 9 <li> 10 <Link to='/'>首頁</Link > 11 </li> 12 <li> 13 <Link to='/movie'>電影</Link > 14 </li> 15 <li> 16 <Link to='/about'>關於</Link > 17 </li> 18 </ul> 19 20 {/* 在APP主頁面,給SubRouter留顯示位置*/} 21 {this.props.children} 22 </div> 23 ) 24 } 25 }
4.修改index.js需要渲染的組件,由渲染原來的APP改為渲染主路由,因為已經用路由管理App頁面了
1 import React from 'react'; 2 import ReactDOM from 'react-dom'; 3 import AppRouter from './AppRouter/AppRouter'; 4 import * as serviceWorker from './serviceWorker'; 5 6 ReactDOM.render(<AppRouter />, document.getElementById('root')); 7 serviceWorker.unregister();
三.頁面效果
四.文件目錄
寫得有什么不對的地方,還請大家多多指教,多謝。