banner
banner
banner
NEWS LETTER

React-创建路由统一管理配置

Scroll down
  1. 新建一个文件夹routes/router
  2. 在该文件夹下新建一个index.tsx文件
  3. 明确react-router-dom的版本,每个版本写法有些不同(去package.json可看)
  • 本次以v6演示
  1. 新建一个变量来存储路由表的信息,以对象的形式保存在数组中
  2. 默认暴露该变量
  3. 示例:
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    import React from "react"
    import Home from "../src/home/index" // 引入组件
    import Comp from "@/comp"
    import Log from "@/log"
    import { Navigate } from "react-router-dom"
    import { createBrowserRouter } from 'react-router-dom'

    const routes = [ // 存放路由表信息的变量
    {
    path: '', // 当路径没有带 / 默认页一般右登录放登录
    element: <Home />,
    },{
    path: '/comp', // 该路径为显示在浏览器地址栏上
    name: 'Comp',
    element: <Comp />, // 跳转的组件
    },{
    path: '/log',
    name: 'Log',
    element: <Log />,
    }]
    const router = createBrowserRouter(routes)
    export default routes
  4. 在index.tsx页面中使用BrowserRouter标签包裹App组件
    • HashRouter 显示的路径 /#
    • BrowserRouter 显示的路径 /
  • 示例:
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    import React from "react";
    import { createRoot } from 'react-dom/client'
    import { RouterProvider } from "react-router-dom"; // reduex接收路由
    import './index.scss'

    const container = document.getElementById("root") as HTMLElement;
    const root = createRoot(container);
    root.render(
    <React.StrictMode>
    <RouterProvider router={router} />
    </React.StrictMode>
    );
  1. 登录后进入系统后通过导航选择页面
  2. 路由
    • 在页面或组件需要跳转路径时使用Link标签
    • to属性的地址与路由表上的path要一样
    • 示例:
      1
      2
      3
      4
      5
      6
      7
      声明式导航
      import React from "react";
      import { memo } from "react"
      import { Link } from 'react-router-dom'
      const Comp = memo(() => {
      return (<Link to={'/loginPage'}><UnlockOutlined style={{ fontSize: '1.2em'}} className="mr-4"/>{item.name}</Link>)
      })
    • 需要通过条件判断在函数中导航
      1
      2
      3
      4
      5
      6
      7
      8
      9
      10
      11
      编程式导航
      import React from "react";
      import { memo } from "react"
      import { useNavigate } from 'react-router-dom';

      const Comp = memo(() => {
      const navigate = useNavigate();
      return(
      <div onClick={()=> navigate('/loginPage')}>跳转loginPage</div>
      )
      })
其他文章
cover
React-创建一个项目
  • 24/11/01
  • 09:41
  • React
cover
React-常用的HOOK
  • 24/11/01
  • 09:41
  • React
请输入关键词进行搜索