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

  • oppo账号实名认证怎么换绑(oppo账号实名认证怎么强制解除)

    oppo账号实名认证怎么换绑(oppo账号实名认证怎么强制解除)

  • 360摄像头怎么连接无线网(360摄像头怎么连接腾讯会议)

    360摄像头怎么连接无线网(360摄像头怎么连接腾讯会议)

  • 钉钉麦克风声音小怎么设置(钉钉麦克风声音设置在哪里)

    钉钉麦克风声音小怎么设置(钉钉麦克风声音设置在哪里)

  • 商家微信收款码提现要手续费吗(商家微信收款码声音怎么设置)

    商家微信收款码提现要手续费吗(商家微信收款码声音怎么设置)

  • 怎么求和一列数据(怎么样求一列的和)

    怎么求和一列数据(怎么样求一列的和)

  • 联通流量限速了怎么恢复网速(联通流量限速了怎么办)

    联通流量限速了怎么恢复网速(联通流量限速了怎么办)

  • 华为畅享10plus手机的卡槽在哪里(华为畅享10plus手机壳)

    华为畅享10plus手机的卡槽在哪里(华为畅享10plus手机壳)

  • 视频怎么解压(视频怎么解压成文件)

    视频怎么解压(视频怎么解压成文件)

  • 如何关闭笔记本摄像头指示灯(如何关闭笔记本电脑自带的键盘)

    如何关闭笔记本摄像头指示灯(如何关闭笔记本电脑自带的键盘)

  • 抖音保存到相册灰色的(抖音保存到相册权限在哪里打开)

    抖音保存到相册灰色的(抖音保存到相册权限在哪里打开)

  • QQ邮箱收到信用卡申请通过AD(qq邮箱收到信用卡邀请是真的吗)

    QQ邮箱收到信用卡申请通过AD(qq邮箱收到信用卡邀请是真的吗)

  • excel打数字怎么变成E(excel怎样输数字)

    excel打数字怎么变成E(excel怎样输数字)

  • qq好友删除后对方在列表还能看到自己吗(qq好友删除后对方还能看到聊天记录吗)

    qq好友删除后对方在列表还能看到自己吗(qq好友删除后对方还能看到聊天记录吗)

  • Word行距25磅怎么调(word文档行距25磅怎么设置)

    Word行距25磅怎么调(word文档行距25磅怎么设置)

  • amd平台是什么意思(电脑amd平台指什么意思)

    amd平台是什么意思(电脑amd平台指什么意思)

  • 华为mate30有几个卡槽(华为mate30有几个版本的区别)

    华为mate30有几个卡槽(华为mate30有几个版本的区别)

  • 1151主板都有什么型号(1151高端主板)

    1151主板都有什么型号(1151高端主板)

  • oppoa83是全网通手机吗(oppoa83是5g手机吗)

    oppoa83是全网通手机吗(oppoa83是5g手机吗)

  • iphone8plus支持18w快充吗(iPhone8plus支持无线充电吗)

    iphone8plus支持18w快充吗(iPhone8plus支持无线充电吗)

  • 苹果手机看朋友圈如何一键到顶部(苹果手机看朋友圈视频一闪一闪的)

    苹果手机看朋友圈如何一键到顶部(苹果手机看朋友圈视频一闪一闪的)

  • 怎么关闭淘宝客(怎么关闭淘宝客服自动回复)

    怎么关闭淘宝客(怎么关闭淘宝客服自动回复)

  • 手机出现繁体字怎么办(手机出现繁体字怎么解决oppo)

    手机出现繁体字怎么办(手机出现繁体字怎么解决oppo)

  • 应用未适配手机怎么办(应用未适配怎么办)

    应用未适配手机怎么办(应用未适配怎么办)

  • 苹果耳机怎么设置敲击(苹果耳机怎么设置)

    苹果耳机怎么设置敲击(苹果耳机怎么设置)

  • 微信未成年怎么实名认证(微信未成年怎么实名)

    微信未成年怎么实名认证(微信未成年怎么实名)

  • 【Web 三件套】个人简单博客系统页面搭建(附源码)(后端三件套)

    【Web 三件套】个人简单博客系统页面搭建(附源码)(后端三件套)

  • python缺失值的解决方法

    python缺失值的解决方法

  • 职工薪酬纳税调减的情况
  • 个人所得税既有租房又有房贷
  • 纳税等级是指什么意思
  • 全年一次性奖金计税方式2023
  • 固定资产新规则
  • 银行存款日记账电子表格模板
  • 小微企业第一季度不符合条件怎么处理
  • 发票可用时间
  • 增值税抵扣凭证装订要求
  • 单位支付给职工的一次性补助金怎么入账
  • 现金折扣怎么进账
  • 收取加盟费会计如何入账
  • 银行美元账户调汇会计分录
  • 支票付款提示
  • 买房报销
  • 发票上有个含税金额什么意思?
  • 案例分析建筑业差额征税如何进行账务处理?
  • 个税由企业承担怎么入账
  • 如何界定广告
  • 涉税事先裁定
  • 试营业期间的费用算不算开办费?
  • 先进行税务登记还是先注册开户银行账号
  • 劳务所得个税税率表
  • 上个月多计提的工资怎么调整
  • 退货需要进行的操作
  • win11任务栏失灵
  • 超市预售卡怎么记账
  • 押金未退会计分录
  • 企业清算所得税申报
  • win10改头像怎么删除以前的头像
  • PHP:mcrypt_cfb()的用法_Mcrypt函数
  • 典当行交易是给现金吗
  • 八仙花的养殖方法冬季怎么养
  • 北极光下的众神图片
  • 小公司不交社保违法吗
  • vue .find
  • 结转成本 凭证
  • 中国姓氏英文写法
  • 垃圾费放在哪个会计科目
  • 出差费用包干制还需要报销吗
  • 承兑汇票贴现利率是怎么算
  • 房地产材料采购清单
  • 生产性企业账务处理
  • 税控盘的进项税在哪里申报
  • 收据不能入账如何处理
  • 债权投资持有期间的账务处理
  • 申报要补税怎么办
  • 多计提的城建税怎么冲减
  • 所得税季度申报弥补以前年度亏损
  • 预付账款在何时可以转出
  • 编制现金流量表应以什么为基础
  • 劳动仲裁要出面吗
  • 失业保险金的支付方式
  • 垃圾处理费计提依据
  • 生产企业消防设施管理规定
  • 长期待摊费用如何结转
  • 土地属于固定资产吗 会计
  • 如何更换会计账号
  • 删除sql server2019
  • mysql replace正则表达式
  • sql server 2012 数据库bak脚本还原
  • 繁体系统安装简体软件
  • windows service 2008 r2
  • ubuntu flash player
  • linux程序死机
  • macbook的qq怎么更换背景
  • Linux下查看某一个程序所使用的内存方法
  • linux 磁带机
  • 微信小程序实现账号密码登录
  • unity 3a游戏
  • bootstrap入门
  • 安卓手机wifi界面
  • jquery异步提交表单
  • web 开发
  • androidstudio性能检测工具
  • 生鲜肉类免税
  • 企业所得税报错了税款扣了可以改吗
  • 国家税务局机打发票可以报销吗
  • 云南省税务干部学校是干什么的
  • 南京交税的标准2019
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设