React中路由的使用

2020-11-11  本文已影响0人  大南瓜鸭

React Router现在的版本是5, 之前版本的思想是传统的思想:路由应该统一在一处渲染, Router 4之后是这样的思想:一切皆组件,React Router包含了四个包,主要使用:react-router-dom

import App from './router/App'
import { BrowserRouter as Router } from 'react-router-dom'
ReactDOM.render(
  <Router>
      <App />
  </Router>, document.getElementById('root'))
import React, { Component } from 'react'
//路由表
import routes from './routes'
//路由配置
import withWrapperFn from './withWrapper'
export default class App extends Component {
    render() {
      return (
        <div>
          {
            withWrapperFn(routes)
          }
        </div>
      )
    }
  }
//引入组件
import Home from './views/Home'
import Kind from './views/Kind'
import Cart from './views/Cart'
import User from './views/User'
import UserList from './views/UserList'
import AdminList from  './views/Adminlist'
// eslint-disable-next-line import/no-anonymous-default-export
export default [
    {
      path: '/home',
      title: '首页',
      component: Home
    },
    {
      path: '/kind',
      title: '分类管理',
      component: Kind
    },
    {
      path: '/cart',
      title: '购物车管理',
      component: Cart
    },
    {
      path:'/user',
      title:'用户管理',
      component:User,
      children: [
        {
          path: '/user/list',
          title: '用户列表',
          component: UserList
        },
        {
          path: '/user/admin',
          title: '管理员列表',
          component: AdminList
        }
      ]
   }
  ]
import React from 'react'
import { Route, Switch, NavLink } from 'react-router-dom'
// eslint-disable-next-line import/no-anonymous-default-export
export default (routes) =>{
    return(
        <div>
        <ul>
            {
            routes.map((route)=>(
                <li key={route.path}>
                //标签跳转
                <NavLink to = { route.path } >{ route.title }</NavLink>
                </li>
            ))
            }
        </ul>
        <Switch>
            {
            routes.map((route)=>(
                //内容显示
                <Route key={route.path} path={route.path} render = {()=>(
                    <route.component routes = { route.children }/>
                )}/> 
            ))
            }
        </Switch>
        </div>
    )
}
import React from 'react'
import withWrapperFn from './../withWrapper'
const User = (props) =>{
  return(
    <div>
      { withWrapperFn (props.routes)}
    </div>
  )
}
export default User
上一篇 下一篇

猜你喜欢

热点阅读