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

推荐订阅源

T
Tailwind CSS Blog
博客园 - Franky
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
Y
Y Combinator Blog
Hugging Face - Blog
Hugging Face - Blog
博客园 - 聂微东
L
LangChain Blog
博客园_首页
Recent Announcements
Recent Announcements
月光博客
月光博客
酷 壳 – CoolShell
酷 壳 – CoolShell
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
H
Hackread – Cybersecurity News, Data Breaches, AI and More
爱范儿
爱范儿
博客园 - 叶小钗
博客园 - 【当耐特】
The Cloudflare Blog
J
Java Code Geeks
G
Google Developers Blog
云风的 BLOG
云风的 BLOG
Blog — PlanetScale
Blog — PlanetScale
博客园 - 司徒正美
aimingoo的专栏
aimingoo的专栏
A
About on SuperTechFans

博客园 - 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/>
  }
]

效果: