惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

博客园_首页
IT之家
IT之家
博客园 - Franky
Stack Overflow Blog
Stack Overflow Blog
宝玉的分享
宝玉的分享
Recent Announcements
Recent Announcements
Engineering at Meta
Engineering at Meta
S
SegmentFault 最新的问题
V
Visual Studio Blog
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
Last Week in AI
Last Week in AI
H
Help Net Security
V
V2EX
H
Hackread – Cybersecurity News, Data Breaches, AI and More
量子位
博客园 - 叶小钗
J
Java Code Geeks
博客园 - 【当耐特】
月光博客
月光博客
爱范儿
爱范儿
人人都是产品经理
人人都是产品经理
酷 壳 – CoolShell
酷 壳 – CoolShell
小众软件
小众软件

博客园 - Zion0707

Codex接入DeepSeek token实现对话与操作,so easy! Openclaw只能聊天不能操作解决方案 Ubuntu从零搭建Openclaw Openclaw安装问题记录 React数字滚动,增加或减少效果 react hooks实现对元素拖拽及鼠标滚轮缩放 前端实现图片文字识别并提取 ECharts实现两条曲线数据比较,数据高出区域高亮显示 canvas实现视频播放并支持自动播放 fabricjs实现虚线流动动画效果 React国际化方案及示例 fabricjs如何导入echarts fabricjs元素对齐方式实现 萤石云视频监控和回放方案 React仿photoshop参考线功能 “DatePicker”不能用作 JSX 组件。 Element plus的tree组件实现单选和搜索功能 16进制相关操作方法 js 版 AES-128 算法加解密 js 版 React 下拉多选,全选/全不选功能组件
react-router-dom v6 使用
Zion0707 · 2022-10-20 · via 博客园 - Zion0707

react及相关版本:

"react": "^18.2.0",

"react-dom": "^18.2.0",

"react-router": "^6.4.2",

"react-router-dom": "^6.4.2"

实现嵌套路由:

目录结构:

main.jsx

import React from 'react'
import ReactDOM from 'react-dom/client'
import App from './App'
import { BrowserRouter } from 'react-router-dom';

ReactDOM.createRoot(document.getElementById('root')).render(
  <BrowserRouter>
    <App />
  </BrowserRouter>
)

App.jsx

import { useRoutes } from 'react-router-dom';
import { routes } from './router';

function App() {
  return (
    <div className="App">
        {useRoutes(routes)}
    </div>
  )
}

export default App

router/index.jsx

import Login from '../pages/login/index';
import Register from '../pages/register/index';
import Main from '../pages/main/index';
import Home from '../pages/home/index';
import Invite from '../pages/invite/index';
import NotFound from '../pages/not-found/index';

export const routes = [
  {
    path: '/login',
    element: <Login />,
  },
  {
    path: '/register',
    element: <Register />,
  },
  {
    // 子路由添加 * 号
    path: '/main/*',
    element: <Main />,
    // 定义二级路由,注意不要加 /
    children: [
      {
        path: 'home',
        element: <Home />,
      },
      {
        path: 'invite',
        element: <Invite />,
      },
      {
        path:'*',
        element:<NotFound/>
      }
    ],
  },
  {
    path:'*',
    element:<NotFound/>
  }
]

效果: