位置: IT常识 - 正文

react-router6.4+的项目种路由实现方式(列举两种)

编辑:rootadmin
react-router6.4+的项目种路由实现方式(列举两种)

推荐整理分享react-router6.4+的项目种路由实现方式(列举两种),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:,内容如对您有帮助,希望把文章链接给更多的朋友!

至笔者发布该文章为止,react-router已经到了6.8.2版本,但中文文档仍旧遥远,网上教程参差不齐而大多是老版本。故笔者也是顶着蹩脚的英文阅读能力对react-router的6.4+版本有了一定的认识后,写下本篇文章

来源: 官方文档 实际上,官方也给出了示例:https://github.com/remix-run/react-router/tree/dev/examples

由于先学习了vue的原因,我对路由数组实现路由的方式比较熟悉,故在此也列出了路由对象数组的实现方式,以及原本的路由组件实现方式 注意,这里的代码只是演示,具体撰写位置以实际为准(我这里是正好写一个项目)

正文如下

安装

yarn add react-router-dom // 当然npm什么的也ok,只是个人习惯用yarnreact-router6.4+的项目种路由实现方式(列举两种)

①路由组件实现方式

index.js

import { createRoot } from 'react-dom/client'import { BrowserRouter } from 'react-router-dom'import App from './App'const root = createRoot(document.getElementById('root'))root.render(<BrowserRouter><App /></BrowserRouter>)

App.js

import { Routes, Route, Link, Outlet } from 'react-router-dom'const App = () => {return (<div><Routes><Route path='/' element={<LatOut />}><Route path='about' element={<About />} /><Route path='/dashboard' element={<Dashboard />} /><Route path='*' element={<Nomatch />} /></Route></Routes></div>)}// 一级路由const LayOut = () => {return (<div><ul><li><Link to='/'>Home</Link></li><li><Link to='/about'>About</Link></li><li><Link to='/dashboard'>Dashboard</Link></li><li><Link to='/nothing-here'>nothing here</Link></li></ul>{/* 在父路由元素中使用来呈现其子路由元素。这允许在呈现子路由时显示嵌套UI。如果父路由完全匹配,它将呈现子索引路由,如果没有索引路由,则什么也不呈现 */}<Outlet /></div>)}// 以下为二级路由function About() { return ( <div> <h2>About</h2> </div> );}function Dashboard() { return ( <div> <h2>Dashboard</h2> </div> );}function NoMatch() { return ( <div> <h2>Nothing to see here!</h2> <p> <Link to="/">Go to the home page</Link> </p> </div> );}

路由组件的实现方式具体如下: Routes组件包裹Route组件,而Route组件又可包裹它的下属Route组件(即子路由) Link组件实现跳转,当然也可利用其他方式,这里只是示例 Outlet组件用在有子路由的父路由底部用于显示子路由(如果需要)

②路由对象数组实现方式

index.js

import { createRoot } from 'react-dom/client'import { BrowserRouter } from 'react-router-dom'import App from './App'const root = createRoot(document.getElementById('root'))root.render( <BrowserRouter> <App /> </BrowserRouter>)

App.js

import { Link, Outlet, useRoutes } from 'react-router-dom'export default function App() { const routes = [ { path: '/', element: <LayOut />, children: [ { path: 'dashboard', element: <Dashboard />, }, { path: 'about', element: <About />, }, { path: '*', element: <Notmatch /> } ], }, ] const element = useRoutes(routes) return ( <div> {element} </div> )}function LayOut() { return ( <div> <ul> <li> <Link to="/">Home</Link> </li> <li> <Link to="/about">About</Link> </li> <li> <Link to="/dashboard">Dashboard</Link> </li> </ul> <Outlet /> </div> )}function About() { return ( <div> <h2>About</h2> </div> )}function Dashboard() { return ( <div> <h2>Dashboard</h2> </div> )}function Notmatch() { return ( <div> <h2>Not thing</h2> <Link to='/'>Home</Link> </div> )}

路由对象数组的实现方式具体如下: App组件内内置routes数组(路由较多的时候也可将它单拎出去一个文件),并使用useRoutes Hook,它将返回element可用于渲染

事实上react-router6.4+版本,有很多种路由实现方式,包括上述两种方法也可相互杂交,另还有RouterProvider等等。我这里只是列出了差距比较大而撰写方法最为截然不同的两种,我个人当然是青睐于路由数组,但还是各有各的喜欢吧

本文链接地址:https://www.jiuchutong.com/zhishi/300229.html 转载请保留说明!

上一篇:Vue学习之从入门到神经(两万字收藏篇)(vue快速入门)

下一篇:自动驾驶决策概况(自动驾驶汽车决策与控制pdf)

  • 华为mate10pro与nova3对比(华为mate10pro与nova5Pro)

    华为mate10pro与nova3对比(华为mate10pro与nova5Pro)

  • 华为nova5是否支持otg(华为nova5是否支持HDMI)

    华为nova5是否支持otg(华为nova5是否支持HDMI)

  • 怎么保存淘宝里面的视频(怎么保存淘宝里的宝贝)

    怎么保存淘宝里面的视频(怎么保存淘宝里的宝贝)

  • 华为p30新机屏幕有贴膜吗(p30 屏幕)

    华为p30新机屏幕有贴膜吗(p30 屏幕)

  • qq如何发2秒dj语音(qq里两秒语音发一首歌)

    qq如何发2秒dj语音(qq里两秒语音发一首歌)

  • 苹果xr卡槽怎么打开(苹果xr卡槽怎么开)

    苹果xr卡槽怎么打开(苹果xr卡槽怎么开)

  • 什么软件可以给视频美颜(什么软件可以给证件照换底色)

    什么软件可以给视频美颜(什么软件可以给证件照换底色)

  • 拒收消息是拉黑了还是删除了(手机拉黑短信能收到吗)

    拒收消息是拉黑了还是删除了(手机拉黑短信能收到吗)

  • 联想m7216打印机怎么连接电脑(联想m7216打印机怎么连接wifi)

    联想m7216打印机怎么连接电脑(联想m7216打印机怎么连接wifi)

  • 快手评论图片怎么看不见(快手评论图片怎么发)

    快手评论图片怎么看不见(快手评论图片怎么发)

  • 苹果面容是什么(苹果面容是什么功能)

    苹果面容是什么(苹果面容是什么功能)

  • 华为nova2支持nfc功能吗(华为nova2支持高清通话吗)

    华为nova2支持nfc功能吗(华为nova2支持高清通话吗)

  • 怎么减掉视频的一部分(怎么减掉视频的后半截)

    怎么减掉视频的一部分(怎么减掉视频的后半截)

  • soul注销账号还能重新申请吗(soul注销账号还能注册吗)

    soul注销账号还能重新申请吗(soul注销账号还能注册吗)

  • 奔腾微处理器是由什么公司生产的(奔腾微处理器是什么位的微处理器)

    奔腾微处理器是由什么公司生产的(奔腾微处理器是什么位的微处理器)

  • 华为m6能接鼠标吗(华为m6外接键盘鼠标)

    华为m6能接鼠标吗(华为m6外接键盘鼠标)

  • 拼多多砍价砍0元怎么回事(拼多多砍价砍完金币还有别的吗)

    拼多多砍价砍0元怎么回事(拼多多砍价砍完金币还有别的吗)

  • vivo手机怎么往mp3传歌(vivo手机怎么往mp3里传小说)

    vivo手机怎么往mp3传歌(vivo手机怎么往mp3里传小说)

  • qq音乐密码怎么改(qq音乐设置密码)

    qq音乐密码怎么改(qq音乐设置密码)

  • 微信的浮窗是什么意思(微信里面的浮窗是什么意思)

    微信的浮窗是什么意思(微信里面的浮窗是什么意思)

  • 抖音多少粉丝才可以直播(抖音多少粉丝才算网红)

    抖音多少粉丝才可以直播(抖音多少粉丝才算网红)

  • 小米平板4支持快充吗(小米平板4支持多大内存卡)

    小米平板4支持快充吗(小米平板4支持多大内存卡)

  • 常用保护计算机系统的方法(常用保护计算机网络安全的方法)

    常用保护计算机系统的方法(常用保护计算机网络安全的方法)

  • aloob是华为什么型号(alp-aloo是华为什么型号)

    aloob是华为什么型号(alp-aloo是华为什么型号)

  • 谷歌浏览器怎么设置中文(谷歌浏览器怎么改成简体中文)

    谷歌浏览器怎么设置中文(谷歌浏览器怎么改成简体中文)

  • vivonex如何快速截屏(vivonex怎么快速截屏)

    vivonex如何快速截屏(vivonex怎么快速截屏)

  • 路由器的默认网关是多少详情(路由器的默认网关在哪里看)

    路由器的默认网关是多少详情(路由器的默认网关在哪里看)

  • matlab图像处理(matlab进行图像处理)

    matlab图像处理(matlab进行图像处理)

  • createrepo命令  创建软件仓库及生成元数据(create_proc_entry)

    createrepo命令 创建软件仓库及生成元数据(create_proc_entry)

  • 退税现金流量表做哪里
  • 税务师考试考几门几年考完
  • 应交税费的借贷方向
  • 固定资产出售如何申报增值税
  • 无形资产价值评估收费
  • 利润表的所得税费用怎么填
  • 财务报表中负债率怎么算
  • 经营罚没物品增值税计算
  • 小规模纳税人怎样报税
  • 新会计准则中计提减值如何回转
  • 企业投资可以税后扣除吗
  • 企业卖旧房如何计算缴纳土地增值税
  • 股权投资损失账务处理
  • 以旧换新如何确认收入
  • 国库集中支付行政运行
  • 国有企业无偿划转资产需要交税吗?
  • 接受捐赠的固定资产进项税额可以抵扣吗
  • 个人购买车辆的发票可以贷款吗
  • 餐饮招待怎么入账
  • 税务局锁了开票系统票已领出还可以开出来吗
  • 建筑企业发生的招标代理费一般计入
  • 农产品购货发票
  • 贸易企业出口退税的操作明细流程
  • 内部员工购买公司产品
  • 重装系统最好排名
  • led显示屏的销售话术
  • 联想昭阳k41笔记本
  • 鸿蒙系统快捷键
  • 冲减预付账款会计分录
  • 支付代账公司费用 怎么写凭证
  • chrome谷歌浏览器
  • 签了购房合同贷款办不下来怎么办
  • 房地产公司收到预售款缴纳印花税吗
  • 违约金开什么票据
  • HTTP加密/HTTPS工作过程
  • cnn卷积神经网络python代码
  • open是什么含义
  • 静态html怎么部署到服务器
  • 出口货物视同内销征税的会计核算?
  • vue虚拟domdiff算法
  • Ant Design-vue 解决input前后空格问题(推荐)
  • 出口会计分录该怎么写
  • 企业的应交税金一般通过什么科目核算
  • 收付转凭证和记帐凭证的区别?
  • 企业的利润分配包括哪些
  • 顺流交易为什么也要减
  • 维修设备增值税税率
  • 收到住宿费普通发票会计分录
  • 计提坏账准备金是什么意思
  • 研发支出属于什么要素
  • 免税苗木发票如何申报
  • 出售固定资产已开票未收款账务处理
  • 小微企业可以享受六税两费吗
  • 银行收到货款会计分录怎么做
  • 给员工家人报销会计分录
  • 支付劳务费需要什么原始凭证
  • SQL Server Alwayson创建代理作业的注意事项详解
  • sqlserver临时表详解
  • win8无线网受限
  • win10开始按钮点不动
  • win2003设置自动重启
  • linux内核驱动开发书籍
  • win7远程登录win10
  • win7系统更新怎么关闭
  • 用jQuery实现可输入多选下拉组合框实例代码
  • python网络编程视频教程
  • 将bat文件注册为应用程序
  • unity3d摄像机视角
  • linux怎么ssh远程
  • python计算文件大小
  • JavaScript中的方法名不区分大小写
  • jQuery使用contains过滤器实现精确匹配方法详解
  • 基于zepto的移动端轻量级日期插件--date_picker
  • bootstrap基础教程
  • rst.open
  • 江苏地税电子税务局官网登录
  • 纳税人对税务机关做出的征税行为不服的,必须
  • 应纳税额减征额账务处理
  • 跨市变更税务登记要多久
  • 小规模纳税人需要建账吗
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设