首页 > 其他分享 >【React】路由配置之路由表与Route标签两种方式

【React】路由配置之路由表与Route标签两种方式

时间:2024-04-04 22:58:53浏览次数:23  
标签:react views Route router element React path import 路由表

前言

下文中使用的是react-router-dom6,首先确保正确下载。未提到的细节可以参考ReactRouter官网

npm install react-router-dom@6

方式一:Route标签

import { Route, Routes } from "react-router-dom"

import Dashboard from "@v/Dashborad"
import Project from "@/views/Project"
import Test1 from "@/views/Setting/Test1"
import Test2 from "@/views/Setting/Test2"

function App() {
  // 根据路由表生成对应的路由规则
  return (
    <Routes>
      <Route path="/" element={<Dashboard />}></Route>
      <Route path="/project" element={<Project />}></Route>
      <Route path="/setting/test1" element={<Test1 />}></Route>
      <Route path="/setting/test2" element={<Test2 />}></Route>
    </Routes>
  )
}

export default App

方式二:路由表配置(推荐

声明路由表

import { Navigate, Outlet, RouteObject } from "react-router-dom"

import MyLayout from "@/layout/index"

import Dashboard from "@v/Dashborad"
import Project from "@/views/Project"
import Test1 from "@/views/Setting/Test1"
import Test2 from "@/views/Setting/Test2"

import Login from "@/views/Login"
import NotFound from "@/views/NotFound"

const routes: RouteObject[] = [
  {
    path: "/",
    element: <MyLayout />,
    children: [
      // Navigate 重定向
      {
        path: "",
        element: <Navigate to="/dashboard" />,
      },
      {
        path: "dashboard",
        element: <Dashboard />,
      },
      {
        path: "project",
        element: <Project />,
      },
      {
        path: "setting",
        element: <Outlet />, // 占位符
        children: [
          { path: "test1", element: <Test1 /> },
          { path: "test2", element: <Test2 /> },
        ],
      },
    ],
  },
  // 不需要layout的页面写到外面
  {
    path: "login",
    element: <Login />,
  },
  { path: "*", element: <NotFound /> },
]

export default routes

useRoutes生成路由规则

// 路由
import { useRoutes } from "react-router-dom"
import routes from "./router"

function App() {
  // 根据路由表生成对应的路由规则
  const ElementRouter = useRoutes(routes)
  return <>{ElementRouter}</>
}

export default App

注意:以上两种方式配置完毕后,别忘了在main.tsz中声明路由模式,HashRouter或BrowserRouter。

// router
import { BrowserRouter as Router } from "react-router-dom"

ReactDOM.createRoot(document.getElementById("root")!).render(
  <Router>
    <App />
  </Router>
)

标签:react,views,Route,router,element,React,path,import,路由表
From: https://blog.csdn.net/owo_ovo/article/details/137147241

相关文章

  • 简单理解 React 的 createContext 和 Provider
    ......
  • React 函数式组件的执行顺序
    https://github.com/zjy4fun/react-fc-order importReact,{useEffect,useState}from'react'import'./App.css'functionApp(){const[count,setCount]=useState(0)constdoubleCount=count*2constaddCount=()=>{......
  • React 导入 less 及其注意事项
    React导入less及其注意事项首先我们肯定要下载一下less,这里我是用vite构建的react项目,由于vite已经内置了对less配置,所以下载完直接导入就行>npmiless这时候我们就可以十分愉悦地使用less了吗?下面请看一下一个小例子,这里我创建了两个tsx模块,分别......
  • Vue基础知识:声明式导航---导航链接router-link,router-link是什么,怎么用?router-link-ac
    router-link是什么?vue-router提供的一个全局组件,router-link(用于取代a标签)router-link怎么用?router-link的好处?1.能够跳转,能高亮(自带激活时的类名)1.能跳转,配置to属性指定路径(必须)。本质还是a标签,to不需要多加#既然已经有了a标签,为什么还有加一个router-link标签呢?......
  • React之Diff 算法
    在React中,通过React.createElement也能生成一个虚拟DOM节点(ReactElement)。在React15及以前,采用了递归的方式创建虚拟DOM,递归过程是不能中断的。如果组件树的层级很深,递归会占用线程很多时间,造成卡顿。React16将递归的无法中断的更新重构为异步的可中断更新,推出了新的......
  • Cisco IOS XRv 9000 Router IOS XR Software 24.1.1(ED) - 服务提供商边缘虚拟路由器
    CiscoIOSXRv9000RouterIOSXRSoftware24.1.1(ED)-服务提供商边缘虚拟路由器CiscoIOSXRv9000路由器请访问原文链接:https://sysin.org/blog/cisco-ios-xrv-9000/,查看最新版。原创作品,转载请保留出处。作者主页:sysin.org思科IOS-XR简介CiscoIOSXRv9000路由......
  • React 19 新特性 – 附带代码示例的更新
    ReactJS是前端开发世界中最流行的UI库之一。我喜欢React的原因之一就是它背后的团队以及社区对它的热情。当社区提出对新功能和改进的需求时,团队会倾听。React的未来令人兴奋而有趣。如果我必须用一句话来总结,我会说这几乎概括了一切:“少写代码,多实现功能。”在本文中,我......
  • TS全栈开发(React+Next.js+Nest.js+UniApp/Vue)项目
    IT环境  我们不可否认从事于互联网相关从业者从产品、开发、测试、运维、销售都吃信息化数字化的红利,对比其他行业薪资高。但从2020年大厂开始裁员、培训机构每年输送大量开发人员、整个国家政府企业工厂信息化建设完成差不多,你们会发现996加班,35岁被降薪裁员,相关IT从业人......
  • vue引入vue-router
    Vue路由(router)的安装和使用安装vue-router插件第一步:在CMD窗口中,使用命令跳转到vue的安装路径下第二步:输入命令:npmivue-router@3vue2要安装vue-router3npmivue-router@3vu3要安装vue-router4npmivue-router@4第三步:出现added1packagein2m表示安装成功vu......
  • PowerShell 中,你可以使用 Get-NetRoute 命令来查看本地系统的路由表。这个命令将显示
    PowerShell中,你可以使用Get-NetRoute命令来查看本地系统的路由表。这个命令将显示系统中的所有路由条目,包括目的网络、子网掩码、网关、接口索引等信息。以下是使用Get-NetRoute命令的示例:powershellCopyCodeGet-NetRoute这将列出系统中的所有路由条目。ifIndexDes......