首页 > 其他分享 >react-router-dom嵌套路由实践

react-router-dom嵌套路由实践

时间:2024-09-26 09:45:05浏览次数:6  
标签:dom admin import element react path router 路由

想要通过react-router-dom实现类似vue的router-view的嵌套路由效果,在点击导航菜单时切换页面,官方文档是真的没找到相关内容,现做个总结:

  1. 在createBrowserRouter的配置中配置给目标路由配置子路由;
  2. 在目标组件的相应位置添加一个<Outlet />作为子路由的组件渲染容器(Outlet组件类似vue的router-view);
  3. 在点击menu时通过useNavigate实现路由跳转。

// router.jsx

import { Router, RouterProvider, createBrowserRouter, Route } from 'react-router-dom';
import Index from "../pages/Index";
import Login from '../pages/Login';
import Admin from '../pages/admin/index';
import Resource from '../pages/admin/Resource';


// 路由
export default function Routes () { 
    const router = createBrowserRouter([
        {
            path: '/',
            element: <Index />
        },
        {
            path: '/login',
            element: <Login />
        },
        {
            path: '/admin',
            element: <Admin />,
            children: [
                {
                    path: "*",
                    element: <div>404</div>
                },
                {
                    path: "",
                    element: <div>admin index</div>
                },                
                {
                    path: 'Resource',
                    element: <Resource />
                }
            ]
        }
    ]);

    return (
        <RouterProvider router={ router } />
    )
};

// admin.jsx

 const navigator = useNavigate();

  const switchPage = (key) => {
    setSelectedKey(key);
    navigator(key);
  };

另外:“*”path可以处理为匹配的的路由,用了自定义404页面

标签:dom,admin,import,element,react,path,router,路由
From: https://www.cnblogs.com/facingscreen/p/18432845

相关文章

  • [CF1842H]Tenzing and Random Real Numbers
    题面原题传送门题面机翻有\(n\)个介于0和1之间(包括0和1)的均匀随机实变量,记为\(x_1,x_2,\ldots,x_n\)。Tenzing有\(m\)个条件。每个条件的形式为\(x_i+x_j\le1\)或\(x_i+x_j\ge1\)。Tenzing想要知道所有条件都满足的概率,模为\(998~244~353\)。形式上......
  • 豆包MarsCode初体验,用 React 创建一个最经典的贪吃蛇游戏
    以下是「 豆包MarsCode 体验官」优秀文章,作者Find。背景在人工智能快速发展的时代,大模型(LLM)只要有足够的算力和数据就可以做到任何的事情,甚至可以模拟出另一个地球。LLM作为一个革命化的科技,可以取代很多岗位,甚至可以让人类达到“躺着领钱的时代”。Marscode作为一个新推出的IDE......
  • MISC - 第五天( RouterPassView 路由器密码修复工具,steghide文件隐藏工具,多压缩包伪
    前言各位师傅大家好,我是qmx_07,今天继续讲解MISC相关知识点荷兰宽带数据泄露下载附件,是一个bin后缀的宽带数据文件,使用RouterPassView工具查看现代路由器都会让用户备份一个配置文件,以便重置恢复数据一般配置文件会包含账户名和密码RouterPassView介绍:用于恢复路......
  • vue-router 原理
    前端路由原理hashH5history1.用JS实现hash路由通过hash变化触发路由变化->触发视图更新不会触发页面刷新window.onhashchange2.使用JS实现H5history路由history.pushStatewindow.onpopstate需要后端支持两者怎么选择?......
  • react之jsx基础(2)高频使用场景
    在React中,JSX的使用是非常广泛和高频的。以下是一些常见的高频使用场景及其示例,帮助你更好地理解JSX的实际应用:1.组件定义JSX最常见的用途之一是定义组件的结构。组件可以是函数组件或类组件,通常会使用JSX来描述组件的UI。函数组件示例:functionGreeting(props){......
  • 如何通过Express和React处理SSE
    如何通过Express和React处理SSE奇舞团360最大的前端团队。已关注 2人赞同了该文章本文作者为360奇舞团前端开发工程师最近AIGC技术的大热,市面上也出现了许多类似生产的AI工具,其中有一大特色就是对话的输出结果是类似真人的打字效果出现,要呈现......
  • Server-Sent Events (SSE) Koa2 & Nginx & React 实践
    Server-SentEvents(SSE)Koa2&Nginx&React实践得鹿梦鱼前端+node全栈,骑马找马中,有兴趣可私聊​关注他 在现代Web应用中,实时数据传输变得越来越重要。Server-SentEvents(SSE)是一种轻量级的技术,允许服务器向客户端主动发送更新。本文将详细介......
  • (零) React Native 项目开发拾遗
    (零)ReactNative项目开发拾遗 一位离职的前端同事,最近接了个 ReactNative 的活儿,遇到许多搞不定的问题,于是找到我帮忙“补课”(没有系统的学习 ReactNative,也不具备原生 Android 和 iOS 开发基础知识)。此前带过另一位前端同事入门 ReactNative 开发,有段时间甚......
  • 一文搞懂XPath查找html dom
     博主介绍: 大家好,我是Yuperman,互联网宇宙厂经验,17年医疗健康行业的码拉松奔跑者,曾担任技术专家、架构师、研发总监负责和主导多个应用架构。技术范围: 目前专注java体系,以及golang、.Net、软件架构、DDD、微服务、redis、nginx、tomcat、mysql、oracle等业务范围: 从数字医......
  • 在 Windows 机器内使用 Fast API、React、Raspberry Pi 制作服务器应用程序
    系统规格处理器-i5第13代RAM-16GBSSD-Nvme500GB操作系统-WindowsHomeRaspberryPi-Pi48GB我有一个托管的FastAPI应用程序在Windows机器上,同一台机器上还有一个React应用程序。React应用程序使用fastAPI应用......