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

  • qq快捷键截图(qq快捷键)(qq快捷键截图没反应)

    qq快捷键截图(qq快捷键)(qq快捷键截图没反应)

  • ipad mini6运行内存(ipad mini6运行内存是多大)

    ipad mini6运行内存(ipad mini6运行内存是多大)

  • word文档怎么移动图片位置(word文档怎么移出来)

    word文档怎么移动图片位置(word文档怎么移出来)

  • 微信的商家收款码和个人收款码有什么区别(微信的商家收款码怎么关闭)

    微信的商家收款码和个人收款码有什么区别(微信的商家收款码怎么关闭)

  • 小米浏览器书签路径是什么(小米浏览器书签添加到桌面)

    小米浏览器书签路径是什么(小米浏览器书签添加到桌面)

  • 移动王卡看腾讯视频不免流(移动王卡看腾讯视频为什么没有免流播放?)

    移动王卡看腾讯视频不免流(移动王卡看腾讯视频为什么没有免流播放?)

  • 手机的歌曲怎么下载到u盘(手机的歌曲怎么传到电脑)

    手机的歌曲怎么下载到u盘(手机的歌曲怎么传到电脑)

  • soul绿点一定在线么(soul的绿点准不准)

    soul绿点一定在线么(soul的绿点准不准)

  • 微信被限制登录是什么原因造成的(微信被限制登录了多久才能正常使用)

    微信被限制登录是什么原因造成的(微信被限制登录了多久才能正常使用)

  • 怎样在拼多多上捡漏(怎样在拼多多上解除银行卡绑定)

    怎样在拼多多上捡漏(怎样在拼多多上解除银行卡绑定)

  • 创建剪贴蒙版有什么用(创建剪贴蒙版有什么用画世界)

    创建剪贴蒙版有什么用(创建剪贴蒙版有什么用画世界)

  • 刚办的手机卡可以注销吗(刚办的手机卡可以改银行卡预留手机号吗)

    刚办的手机卡可以注销吗(刚办的手机卡可以改银行卡预留手机号吗)

  • airprint打印机有哪些(打印机airprint什么功能)

    airprint打印机有哪些(打印机airprint什么功能)

  • e3 1230 v5相当于i几(e31230v5相当于i7什么)

    e3 1230 v5相当于i几(e31230v5相当于i7什么)

  • 新开的淘宝店铺为什么搜索不到(新开的淘宝店铺为什么没有人购买呢)

    新开的淘宝店铺为什么搜索不到(新开的淘宝店铺为什么没有人购买呢)

  • oppor11闪充多少w(oppor11plus闪充多少w)

    oppor11闪充多少w(oppor11plus闪充多少w)

  • 华为热点资讯怎么关(华为热点资讯怎么彻底删除不了)

    华为热点资讯怎么关(华为热点资讯怎么彻底删除不了)

  • 电脑酷我音乐如何k歌(电脑酷我音乐如何下载mp3格式歌曲)

    电脑酷我音乐如何k歌(电脑酷我音乐如何下载mp3格式歌曲)

  • 打印机驱动怎么安装(打印机驱动怎么更新)

    打印机驱动怎么安装(打印机驱动怎么更新)

  • 腾讯电脑管家中文件保护是什么?(腾讯电脑管家中蓝牙在哪)

    腾讯电脑管家中文件保护是什么?(腾讯电脑管家中蓝牙在哪)

  • vue 学习(vue如何学)

    vue 学习(vue如何学)

  • Vue项目二 登录注册功能的实现(vue 登录模板)

    Vue项目二 登录注册功能的实现(vue 登录模板)

  • 前端已死?金三银四?你收到offer了吗?

    前端已死?金三银四?你收到offer了吗?

  • 广告公司的税务
  • 电子税务局怎么删除办税员
  • 一般纳税人什么情况可以开3%的发票
  • 分公司可以用总公司的业绩吗
  • 超市发票报销用途写什么
  • 所得税年报工资薪金支出怎么填
  • 高新技术企业入库难吗
  • 公司车辆的维修费挂什么科目
  • 分配本月工资及福利费会计分录
  • 资产负债表存货为负数原因
  • 销售企业资金风险点有哪些呢
  • 有形动产租赁简易征收适用哪些业务
  • 车船使用税应该交哪里的税
  • 本月完工产品的会计分录
  • 补计提去年的增值税
  • 房产税每次申报都要维护吗
  • 企业所得税收入是什么意思
  • 开票软件维护费计入什么科目
  • 发票抬头错了认可怎么办
  • 研发支出费用如何计算应交所得税?
  • 增值税纳税申报表怎么填
  • 个体工商户做账可以做工资吗
  • 营改增服务业税负下降
  • 增值税发票遗失证明模板
  • Mac系统怎么设置ftp
  • 事业单位服务收入怎么做账
  • XP系统,右下角本地连接图标消失的解决办法
  • 发票金额大于报销金额违法吗
  • 农民工工资保证金退还条件
  • PHP:apache_setenv()的用法_Apache函数
  • 预付款指的是
  • php imagestring
  • slee401.exe - slee401是什么进程 有什么用
  • Stable Diffusion 准确绘制人物动作及手脚细节(需ControlNet扩展)
  • 弃置费用预计负债递延所得税怎么处理
  • HTTP 错误 500.19- Internal Server Error 错误解决方法
  • php ajax 实现
  • 印花税申报时间填错了怎么处理?
  • 其他应收款的会计分录有哪些
  • 结转入库材料计什么科目
  • 税前利润包含
  • 开了发票不做收入的账务处理是?
  • 计提加计抵减
  • 什么叫做有限循环小数
  • 纳税人企业本月纳税额
  • 小规模纳税人有个人所得税吗?
  • 如何计算生产费用
  • 申报抵扣
  • 税控盘减免税款分录
  • 支付宝可以对公账户转账吗怎么转
  • 预期年化收益率安全吗
  • 多缴所得税返还会计分录
  • 收取客户好处算违法吗
  • 汇算清缴如何调到不退不补
  • 新注册企业实收资本没到账怎么处理
  • 招标代理服务费应该由谁支付
  • 成品油发票的勾选方法
  • 其他业务收入如何填写增值税申报表
  • 开户一定要去银行吗
  • 离岸银行账户开户
  • 公司不做账会怎样?
  • 设置行政机构的主要依据是
  • win7打开控制面板快捷键
  • win10高对比度设置点了没反应
  • vsftpd配置用户登录目录
  • win8内存管理
  • Jquery ajax加载等待执行结束再继续执行下面代码操作
  • 基于jQuey实现鼠标滑过变色(整行变色)
  • python迭代器的作用
  • Android studio 无法勾选sdk
  • unity二段跳
  • javascript怎么学
  • jquery中的基本选择器有哪些
  • javascrapt
  • 21个JavaScript事件(Events)属性汇总
  • python魔法方法详解
  • 自来水征税
  • 河北电子税务局网上登录
  • 新疆高龄补贴2024发放标准是多少
  • 苏州税务局发票查询系统
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设