react-router-dom 嵌套路由的實現(xiàn)
入口文件index.js:
import React from "react"
import ReactDOM from "react-dom"
import App from "./App.jsx"
import "babel-polyfill"
const root = document.getElementById("app")
if (root !== null) {
ReactDOM.render(<App />, document.getElementById("app"))
}
各個文件的詳細位置:

主要目錄App.jsx:
import React, { Fragment, Component } from "react"
import {
BrowserRouter as Router,
Switch,
Route,
NavLink,
Redirect,
Link,
withRouter,
} from "react-router-dom"
// 開始引入各種自定義的組件
import Index from "./pages/platform/index"
//404頁面
import ErrorPage from "./pages/ErrorPage"
import Login from "./pages/login/index"
import routes from "./routes/index"
class BaseLayout extends Component {
constructor(props) {
super(props)
}
render(){
return(
<Fragment>
<ul>
{routes.map((val,index))=>{
return(
<li key={index}>
<Link to={val.path}>{val.authName}</Link>
</li>
)
}
</ul>
<Switch>
{routes.map((route, key) => {
if (route.exact) {
return (
<Route
key={key}
exact
path={route.path}
component={(props) => {
return (
<route.component {...props} routes={route.routes} />
)
}}
>
{/* <route.component /> */}
</Route>
)
} else {
return (
<Route
key={key}
path={route.path}
component={(props) => {
return (
<route.component {...props} routes={route.routes} />
)
}}
>
{/* <route.component /> */}
</Route>
)
}
})}
<Route path="/">
<Index />
</Route>
<Route path="*">
<ErrorPage />
</Route>
</Switch>
</Fragment>
)
}
}
class App extends React.Component {
constructor(props) {
super(props)
}
render() {
return (
<Router>
<Switch>
<Route path="/login">
<Login />
</Route>
<Route path="/">
<BaseLayout />
</Route>
<!--<Route path="*">-->
<!-- <ErrorPage />-->
<!-- </Route>-->
</Switch>
</Router>
)
}
}
export default App
放路由route.js:
import Index from "../pages/platform/index"
import UserAdd from "../pages/component/User/UserAdd"
import UserList from "../pages/component/User/UserList"
const routes = [
{
path: "/index",
authName: "首頁",
component: Index,
exact: true,
},
{
path: "/user",
authName: "用戶1",
component: UserList,
},
{
authName: "用戶2",
path: "/userAdd",
component: UserAdd,
},
]
export default routes
其他頁面login.jsx:
import React, { Component } from "react"
export default class Login extends Component {
render() {
return <div>Login</div>
}
}
其他頁面index.jsx:
import React, { Component } from "react"
export default class Index extends Component {
render() {
return <div>Index</div>
}
}
其他頁面UserAdd.jsx:
import React, { Component } from "react"
export default class UserAdd extends Component {
render() {
return <div>UserAdd</div>
}
}
其他頁面UserList.jsx:
import React, { Component } from "react"
export default class UserList extends Component {
render() {
return <div>UserList</div>
}
}
到此這篇關于react-router-dom 嵌套路由的實現(xiàn)的文章就介紹到這了,更多相關react 嵌套路由內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
react中使用redux-persist做持久化儲存的過程記錄
這篇文章主要介紹了react中使用redux-persist做持久化儲存的相關資料,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下2024-01-01
React18系列reconciler從0實現(xiàn)過程詳解
這篇文章主要介紹了React18系列reconciler從0實現(xiàn)過程詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2023-01-01
react.js 獲取真實的DOM節(jié)點實例(必看)
下面小編就為大家?guī)硪黄猺eact.js 獲取真實的DOM節(jié)點實例(必看)。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2017-04-04
react實現(xiàn)一個優(yōu)雅的圖片占位模塊組件詳解
這篇文章主要給大家介紹了關于react如何實現(xiàn)一個還算優(yōu)雅的占位模塊圖片組件的相關資料,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧。2017-10-10
react-native 封裝選擇彈出框示例(試用ios&android)
本篇文章主要介紹了react-native 封裝選擇彈出框示例(試用ios&android),具有一定的參考價值,有興趣的可以了解一下2017-07-07
react native實現(xiàn)監(jiān)控手勢上下拉動效果
這篇文章主要為大家詳細介紹了react native實現(xiàn)監(jiān)控手勢上下拉動效果,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下2021-05-05

