位置: 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)

  • cr2和jpg有什么区别(cr2与jpg)

    cr2和jpg有什么区别(cr2与jpg)

  • iqoo8pro有dc调光吗(iqoo8有没有dc调光)

    iqoo8pro有dc调光吗(iqoo8有没有dc调光)

  • 鸿蒙电量卡片怎么设置(鸿蒙电量卡片怎么关闭)

    鸿蒙电量卡片怎么设置(鸿蒙电量卡片怎么关闭)

  • 红米k40超广角度数是多少(红米k40超广角度怎么调)

    红米k40超广角度数是多少(红米k40超广角度怎么调)

  • qq农场怎么赚钱最快(qq农场技巧)

    qq农场怎么赚钱最快(qq农场技巧)

  • 小天才y05所有隐藏功能(小天才y05有什么隐形功能)

    小天才y05所有隐藏功能(小天才y05有什么隐形功能)

  • 快手关注里显示该账号已重置(快手关注里显示互关,搁精选里是没关注呢)

    快手关注里显示该账号已重置(快手关注里显示互关,搁精选里是没关注呢)

  • 笔记本自带摄像头像素多少(笔记本自带摄像头打不开怎么办)

    笔记本自带摄像头像素多少(笔记本自带摄像头打不开怎么办)

  • 华为蓝牙媒体音频打不开(华为蓝牙媒体音频自动关闭)

    华为蓝牙媒体音频打不开(华为蓝牙媒体音频自动关闭)

  • 微信对话框怎么换气泡(微信对话框怎么缩小)

    微信对话框怎么换气泡(微信对话框怎么缩小)

  • 苹果关机键没反应(苹果关机键没反应怎么截屏)

    苹果关机键没反应(苹果关机键没反应怎么截屏)

  • iphone6splus升级ios13会不会卡(iphone6splus升级ios15.7.5)

    iphone6splus升级ios13会不会卡(iphone6splus升级ios15.7.5)

  • 苹果xs怎么广角镜头(苹果xs的广角)

    苹果xs怎么广角镜头(苹果xs的广角)

  • 双卡怎么切换流量(双卡怎么切换流量oppo)

    双卡怎么切换流量(双卡怎么切换流量oppo)

  • 如何B站自动横屏播放(b站怎么设置横屏播放)

    如何B站自动横屏播放(b站怎么设置横屏播放)

  • pentium是指(pentium通常所指的什么型号)

    pentium是指(pentium通常所指的什么型号)

  • 云闪付怎么绑定微信(云闪付怎么绑定银行卡步骤)

    云闪付怎么绑定微信(云闪付怎么绑定银行卡步骤)

  • 加内存条需要注意什么(加内存条需要开机吗)

    加内存条需要注意什么(加内存条需要开机吗)

  • 小米9透明版和透明尊享版有什么区别(小米9透明版和探索版一样吗)

    小米9透明版和透明尊享版有什么区别(小米9透明版和探索版一样吗)

  • 如何取消批注模式(如何取消批注栏)

    如何取消批注模式(如何取消批注栏)

  • 怎样解决电脑IP地址错误(怎样解决电脑卡顿)

    怎样解决电脑IP地址错误(怎样解决电脑卡顿)

  • 春天里的一只雄性开普梅莺 (© JZHunt/Getty Images Plus)(春天里的____作文)

    春天里的一只雄性开普梅莺 (© JZHunt/Getty Images Plus)(春天里的____作文)

  • 报错“Cannot read properties of null (reading ‘addEventListener‘)“(报错500是什么意思)

    报错“Cannot read properties of null (reading ‘addEventListener‘)“(报错500是什么意思)

  • el-upload组件的文件回显功能和添加文件到elupload组件(elementui的upload组件详解)

    el-upload组件的文件回显功能和添加文件到elupload组件(elementui的upload组件详解)

  • React+Mobx|基本使用、模块化(react moment)

    React+Mobx|基本使用、模块化(react moment)

  • 织梦arclist标签无法调用副栏目文章的解决办法-dedecms调用副栏目文章(织梦标签理解)

    织梦arclist标签无法调用副栏目文章的解决办法-dedecms调用副栏目文章(织梦标签理解)

  • 金蝶能够反年结账吗
  • 酒店摆放物品是什么
  • 货运代理开票系统如何开票
  • 分公司的所得税怎么申报
  • 汇算清缴a107020表
  • 灾区捐款会计分录
  • 补交税款时加收的滞纳金有上限吗
  • 应付职工薪酬如何具体到个人
  • 外地扣缴的个人所得税
  • 保函保证金怎么审计
  • 建筑工地的零星补单是指什么意思
  • 递延所得税负债是什么意思
  • 公户转私户的钱几天能到账
  • 企业缴存公积金比例
  • 上市公司发行股票可以自行销售吗
  • 税控盘这个月没有反写会怎么样
  • 私人企业的资金来源
  • 一般纳税人净利润300万企业所得税怎么算
  • 待清算直销银行
  • 同程旅行酒店预订
  • 企业如何做好税务管理工作
  • 企业房屋管理办法
  • 减税必须通过开户银行吗
  • 非企业单位有税收吗
  • 将自产产品用于职工福利的账务处理
  • 公司如何确定总股本
  • 转让投资性房地产收到售价款
  • 给子公司员工发放奖金合法吗
  • 微软告诉你
  • ocxdll.exe - ocxdll是什么进程 有什么用
  • PHP:stream_get_transports()的用法_Stream函数
  • php socket_write
  • 进程com
  • 驼鹿穿过莫兰山了吗
  • 股权名称应该填什么?
  • 多模手机
  • 财政拨款结转的二级科目有哪些
  • 外省人员收入怎么查
  • 端午节过节费发放通知
  • 公司财务变更需要变更哪些内容
  • 加油票没有纳税怎么办
  • sqlyog
  • 已经提完折旧的房产价值评估
  • 小规模免税怎么做账务处理
  • 无发票的费用该谁承担
  • 季中转一般纳税人申报了小规模后无法勾选认证
  • 零申报一定要有员工吗
  • 中华人民共和国企业所得税年度纳税申报表
  • 期末存货材料成本差异
  • 日记总账的适用范围
  • 工会支付职工福利费做账
  • 普通发票和增值税普通发票一样吗
  • 财务报表没申报怎么操作呢
  • 怎么才能不开发票
  • 商场一般是怎么缴纳租金的
  • 员工退回备用金怎么写收据
  • 未交增值税账务处理
  • 房屋租赁违约金怎么规定
  • 酒店客人损坏物品不赔偿怎么报警
  • 外经证核销反馈表写错了怎么办
  • 年度报告应包括哪些
  • 美金形式发票
  • 新成立的分公司怎么样
  • 费用报销流程及制度
  • 如何设计高效合理的未来课程
  • 一个 sql 查询很慢,从哪些地方进行优化?
  • 怎样提升win10开机速度
  • windows 批处理
  • os x10.11el capitan beta4更新了什么?os x10.11el capitan beta4下载地址
  • eac.exe是什么
  • 密码多次错误被锁定怎么办
  • windows8开发者预览版中文版ISO下载
  • cocos2d怎么用
  • 环境篇作文
  • unityc#打不开
  • js中不同的height, top的区别对比
  • 餐饮专票可以抵扣吗
  • 河南车船税收费标准图片
  • 汽车买保险车船税是什么意思
  • 税额差怎么计算
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设