位置: 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群推广的实战技巧(网络营销怎么营销)

  • 荣耀play3充电指示灯如何打开(荣耀play3显示充电但充不进去电)

    荣耀play3充电指示灯如何打开(荣耀play3显示充电但充不进去电)

  • 苹果微信怎么单独加密码锁(苹果微信怎么单独发文字朋友圈)

    苹果微信怎么单独加密码锁(苹果微信怎么单独发文字朋友圈)

  • 闲鱼发票能给别人吗(闲鱼卖东西可以给发票吗)

    闲鱼发票能给别人吗(闲鱼卖东西可以给发票吗)

  • 苹果电脑充电器两个耳朵干嘛的(苹果电脑充电器充不进去电是什么原因)

    苹果电脑充电器两个耳朵干嘛的(苹果电脑充电器充不进去电是什么原因)

  • macbook的safari没反应(macbook pro的safari不能上网)

    macbook的safari没反应(macbook pro的safari不能上网)

  • 苏宁买的iphone能去苹果售后吗(在苏宁买的苹果手机可以退吗)

    苏宁买的iphone能去苹果售后吗(在苏宁买的苹果手机可以退吗)

  • 探探为什么匹配不到人(探探为什么匹配不到同城的)

    探探为什么匹配不到人(探探为什么匹配不到同城的)

  • 字里面带横线怎么整(字带横线怎么打出来)

    字里面带横线怎么整(字带横线怎么打出来)

  • 小米一共有几个语音助手(小米一共几个公司)

    小米一共有几个语音助手(小米一共几个公司)

  • 字符char型数据在微机内存中的存储形式是(字符类型char所表示的值的集合是什么)

    字符char型数据在微机内存中的存储形式是(字符类型char所表示的值的集合是什么)

  • 哔哩哔哩视频保存手机(哔哩哔哩视频保存本地)

    哔哩哔哩视频保存手机(哔哩哔哩视频保存本地)

  • 华为手机运动健康怎么开启(华为手机运动健康怎么关闭)

    华为手机运动健康怎么开启(华为手机运动健康怎么关闭)

  • web开发分为哪两种模式(web开发分为哪两个阶段)

    web开发分为哪两种模式(web开发分为哪两个阶段)

  • 怎么找到电脑里的ie浏览器(怎么找到电脑里的流氓软件并卸载)

    怎么找到电脑里的ie浏览器(怎么找到电脑里的流氓软件并卸载)

  • 2060显卡500w电源够吗(2060显卡用650w电源)

    2060显卡500w电源够吗(2060显卡用650w电源)

  • 移动4g版手机什么意思(2021移动4g)

    移动4g版手机什么意思(2021移动4g)

  • 苹果x左上角怎么设置文字(苹果X左上角怎么设置爱心)

    苹果x左上角怎么设置文字(苹果X左上角怎么设置爱心)

  • 抖音怎么解除身份认证(抖音怎么解除身份证号码)

    抖音怎么解除身份认证(抖音怎么解除身份证号码)

  • springboot常用注解(springboot的常用注解有哪些)

    springboot常用注解(springboot的常用注解有哪些)

  • 嘀嗒乘客不确认怎么办(嘀嗒乘客不确认行程)

    嘀嗒乘客不确认怎么办(嘀嗒乘客不确认行程)

  • 抖音蹦迪闪光特效(抖音蹦迪闪光特效在哪里)

    抖音蹦迪闪光特效(抖音蹦迪闪光特效在哪里)

  • i9s蓝牙耳机使用方法(i9s蓝牙耳机使用说明)

    i9s蓝牙耳机使用方法(i9s蓝牙耳机使用说明)

  • 换手机了微信群哪里找(换手机了微信群不见了怎么找回来)

    换手机了微信群哪里找(换手机了微信群不见了怎么找回来)

  • 个税申报吗
  • 供暖服务费增值税怎么算
  • 汇算清缴补交所得税会计分录小企业会计政策
  • 商贸企业购销混凝土税率怎么选择
  • 吴中区个体户如何办理
  • 盈余公积发放现金股利分录怎么写
  • 收付实现制有应收应付吗
  • 股权投资收回的账务处理
  • 教育培训机构内账会计
  • 专用发票抵扣联放在凭证中吗
  • 存货入账价值计算公式
  • 总公司亏损分公司盈利如何处理
  • 减半征收企业所得税税率
  • 员工替公司垫付的费用还没有报销就被开除了
  • 承包费收入计入什么科目
  • 一般纳税人为什么要开专票
  • 出口退税销项税额计算公式
  • 免税的和不免税的可以开在一张发票上吗
  • 子公司给的股利用交税吗
  • 限制性股票股利会计处理
  • 企业预缴多交税了如何申请退税
  • 进项税额抵扣欠税后怎么申报
  • 录入凭证利息收入负数怎么录入?
  • 法院执行费怎么收取法律依据
  • 购买方取得专票会计分录
  • 1697511149
  • dwg文件怎么打开
  • 没有原始凭证可以审计吗
  • 静态回收期怎么计算
  • 发票冲红怎么开具
  • 销售收入的暂估入账
  • win10系统电脑怎么连接wifi
  • 房地产企业收入确认
  • 资产负债所有者权益损益类会计科目
  • 美轮美奂的对象是什么
  • 信用减值损失会影响所有者权益吗
  • 投资中间人要担什么责任
  • 劳务费怎么做会计分裤
  • java多线程线程数控制在多少
  • 前端schema
  • vgchange命令
  • 新成立的公司的搭建费可以申请补助吗?
  • 应收帐款质保金
  • 预提和计提
  • 11月资产负债表
  • 织梦如何开启会员功能
  • sqlserver创建临时表语句
  • 待报解预算收入是什么意思,扣了钱
  • 未分配利润是否可以全部分红
  • 员工意外伤害险入什么会计科目
  • 累计摊销属于什么类科目
  • 增值税退税是否算主营业务收入
  • 印花税签合同
  • 企业未开票收入怎么入账
  • 物业公司代收取暖费怎么缴纳税额
  • 建筑公司工程外包 税务
  • 退货对方不开具红字发票怎么办
  • 外贸企业汇兑损益如何减少
  • 公司与公司之间的借款合法吗
  • 项目建设期间所涉及的税
  • 年底未分配利润为负数怎么做分录
  • sql server 数据库介绍
  • windows任务管理器怎么打开
  • xp系统电脑开机密码忘记了
  • 64位Vista、Windows7系统IIS连接数据库故障完美解决
  • winproj.exe - winproj进程是什么意思
  • python sed
  • 电脑连不上网怎么回事 笔记本
  • 如何把旧mac上的所有内容迁移到新mac上
  • win8.1 安装
  • opengl sharder
  • java语言的解释器是什么
  • 利用的拼音
  • 浅谈jquery中next与siblings的区别
  • android开发菜鸟教程
  • jquery获取动态生成的元素的值
  • javascript闭包运行原理
  • 国内免费机场
  • 金税盘联网步骤
  • 异辛烷征收消费税2023
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设