React 路由配置

一、使用react-router 5.x 版本实现

1, 下载react的路由模块
    npm install react-router-dom@5 --save
2, 在入口文件 src/index.js中,从路由模块导入工具组件Router ,并包裹根组件  
    (注: 哈希模式用HashRouter 历史模式用BrowserRouter)
    import { HashRouter } from 'react-router-dom'
    ReactDOM.render(
          <HashRouter >
            <App />
        </HashRouter >,
          document.getElementById('root')
    );
3, 创建路由文件src/router/index.js,  并从路由模块中导入工具组件Route 
    import { Route, Switch } from "react-router-dom";
4, 创建路由组件,配置路由, 并导出
    export default function MyRouter(){
        return(
            <Switch >
                <Route exact path="/"  component={Home} />
                {/* 路由重定向, 使用Redirect组件实现, 要写在最后 */}
                <Redirect from="/" to="/home" />
            </Switch >
        )
    }
5, 在app.js中导入路由组件
    import RouterView from './router/index';
6, 在根组件app模板中添加路由组件,即路由出口
    <RouterView></RouterView>
7, 在需要跳转的页面, 从路由模块导入工具组件 Link
    import {Link} from 'react-router-dom'
8, 使用Link组件执行路由跳转
    <Link to="/">首页/Link>

二、使用react-router 6.3 版本实现

1, 下载react的路由模块(默认最新6.3)
    npm install react-router-dom --save
2, 在入口文件 src/index.js中,从路由模块导入工具组件Router ,并包裹根组件  
    (注: 哈希模式用HashRouter 历史模式用BrowserRouter)
    import { HashRouter } from 'react-router-dom'
    ReactDOM.render(
          <HashRouter >
            <App />
        </HashRouter >
    );
3, 创建路由文件src/router/index.js,  并从路由模块中导入工具组件Route 
    import { Routes, Route } from "react-router-dom";
4, 创建路由组件,配置路由, 并导出
    export default function MyRouter(){
        return(
            <Routes >
                <Route path="/" element={<Home/>} />
                <Route path="/login" element={<Login/>} />
                {/* router6的路由重定向写法 */}
                <Route path="/abc" element={<Navigate to="/login" replace/>} />
            </Routes >
        )
    }
5, 在app.js中导入路由组件
    import RouterView from './router/index';
6, 在根组件app模板中添加路由组件,即路由出口
    <RouterView></RouterView>
7, 在需要跳转的页面, 从路由模块导入工具组件 Link
    import {Link} from 'react-router-dom'
8, 使用Link组件执行路由跳转
    <Link to="/">首页/Link>


注意: 使用router6.0实现的路由跳转, 不会向组件中传入路由信息, 可以在组件中从路由模块导出useLocation和useNavigate函数以实现路由相关功能

三、使用react-router 6.3 版本 + hooks 语法实现

1, 下载react的路由模块(默认最新6.3)
    npm install react-router-dom --save
 
2, 在入口文件 src/index.js中,从路由模块导入工具组件Router ,并包裹根组件 
    (注: 哈希模式用HashRouter 历史模式用BrowserRouter)
    import { HashRouter } from 'react-router-dom'
    ReactDOM.render(
          <HashRouter >
            <App />
        </HashRouter >
    );

3, 创建路由文件src/router/index.js,  导入需要路由跳转的组件, 并导出路由配置数组
    import { Navigate } from "react-router-dom";
    import Home from "../pages/Home/Home"
    import User from "../pages/User/User"
    export default [
        {
            path: '/',
            element: <Home />
        },
        {
            path: '/user',
            element: <User />
        },
        {
            path: "/",
            // 路由重定向, 借助Navigate组件跳转
            element: <Navigate to="/home" replace/>
        }
    ]

4, 在app.js中导入路由配置函数useRoutes和路由配置数组routes
    import routes from './router/index';
    import { useRoutes } from "react-router-dom"

5, 在函数式组件app中创建路由出口
    const routerView = useRoutes(routes)

6, 在函数式组件app模板中渲染路由出口
    {routerView}

7, 在需要跳转的页面, 从路由模块导入工具组件 Link
    import {NavLink} from 'react-router-dom'

8, 使用NavLink组件执行路由跳转
    <NavLink to="/">首页/NavLink>

四、使用react-router 6.4 版本 + hooks 语法实现

1, 下载react的路由模块(最新6.10.0)
    npm install react-router-dom 
 
2, 创建路由文件src/router/index.jsx,  导入根组件和需要路由跳转的组件
    import { createBrowserRouter, Navigate } from "react-router-dom";
    import App from "../App";
    import Home from "../pages/Home/Home"
    
3, 创建路由对象并导出
    const router = createBrowserRouter([
        {
            path: "/",
            element: <App />,
            children: [ // 子路由
                {
                    path: "/",
                    // 路由重定向, 借助Navigate组件跳转
                    element: <Navigate to="home" replace />,
                },
                {
                    path: "home",
                    element: <Home />,
                }
            ],
        },
    ]);
    export default router;

4, 在入口文件 src/main.jsx中,从路由模块导入工具组件RouterProvider 和路由对象, 并渲染到根标签root
    import { RouterProvider  } from 'react-router-dom'
    import router from './router/index.jsx';
    ReactDOM.createRoot(document.getElementById('root')).render(
        <RouterProvider router={router} />
    )

5, 在app.jsx根组件中导入路由出口组件 Outlet 
    import { Outlet } from "react-router-dom"

6, 在app.jsx根组件中渲染路由出口
     <Outlet></Outlet>

7, 在需要跳转的页面, 从路由模块导入工具组件 NavLink
    import {NavLink} from 'react-router-dom'

8, 使用NavLink组件执行路由跳转
    <NavLink to="/">首页/NavLink>
 

  • 5
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值