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

  • 蚂蚁庄园小鸡怎么不见了(蚂蚁庄园小鸡怎么叫醒)

    蚂蚁庄园小鸡怎么不见了(蚂蚁庄园小鸡怎么叫醒)

  • 手机飞行模式闹钟还会响吗(手机飞行模式闹钟不响)

    手机飞行模式闹钟还会响吗(手机飞行模式闹钟不响)

  • 小米手机找不到相册图标(小米手机找不到应用商店)

    小米手机找不到相册图标(小米手机找不到应用商店)

  • 微信响三声对方忙线中(微信响了三声对方忙是挂掉了吗?)

    微信响三声对方忙线中(微信响了三声对方忙是挂掉了吗?)

  • oppok3前置摄像头打不开是什么原因(oppok3前置摄像头升不起来怎么办)

    oppok3前置摄像头打不开是什么原因(oppok3前置摄像头升不起来怎么办)

  • 微信右上角加号不显示(微信右上角加号少了收付款)

    微信右上角加号不显示(微信右上角加号少了收付款)

  • 微信几时开始有的(微信是多久开始有的)

    微信几时开始有的(微信是多久开始有的)

  • 桥接的副路由器老是无ip分配(桥接的副路由器怎么设置)

    桥接的副路由器老是无ip分配(桥接的副路由器怎么设置)

  • 知乎怎么复制不了文字(知乎怎么复制不了)

    知乎怎么复制不了文字(知乎怎么复制不了)

  • 微博加入黑名单 对方会知道吗(微博加入黑名单对方还能看我主页吗)

    微博加入黑名单 对方会知道吗(微博加入黑名单对方还能看我主页吗)

  • 微信群怎么撤回超过两分钟的消息(微信群怎么撤回图片)

    微信群怎么撤回超过两分钟的消息(微信群怎么撤回图片)

  • 苹果xr支持双电信卡吗(xr可以用双电信吗)

    苹果xr支持双电信卡吗(xr可以用双电信吗)

  • qq屏幕分享没有声音(qq屏幕分享没有声音怎么办)

    qq屏幕分享没有声音(qq屏幕分享没有声音怎么办)

  • 怎么看显示屏多少寸(怎么看显示屏多少针)

    怎么看显示屏多少寸(怎么看显示屏多少针)

  • 苹果13.3.1系统怎么设置来电闪光灯(苹果13.6系统怎样)

    苹果13.3.1系统怎么设置来电闪光灯(苹果13.6系统怎样)

  • 停电后路由器连不上网怎么办(停电后路由器连不上网)

    停电后路由器连不上网怎么办(停电后路由器连不上网)

  • 微博拉黑对方私信显示(微博拉黑对方私信还能看到吗)

    微博拉黑对方私信显示(微博拉黑对方私信还能看到吗)

  • 云充吧可以跨省异地还吗(云充吧可以异地归还吗)

    云充吧可以跨省异地还吗(云充吧可以异地归还吗)

  • 小米mix2s支持闪充吗(小米mix2s两个闪电)

    小米mix2s支持闪充吗(小米mix2s两个闪电)

  • OPPO手机怎么把号码储存到手机卡(oppo手机怎么把旧手机转到新手机)

    OPPO手机怎么把号码储存到手机卡(oppo手机怎么把旧手机转到新手机)

  • 华为智慧屏55寸什么时候上市(华为智慧屏55寸挂架)

    华为智慧屏55寸什么时候上市(华为智慧屏55寸挂架)

  • 开关0和1代表什么(开关上面的0和1)

    开关0和1代表什么(开关上面的0和1)

  • 解除微信登录拼多多(如何解除微信登录拼多多)

    解除微信登录拼多多(如何解除微信登录拼多多)

  • ipad自拍是反的怎么办(ipad自拍反向能改吗)

    ipad自拍是反的怎么办(ipad自拍反向能改吗)

  • 热点连不上(热点连不上电脑)

    热点连不上(热点连不上电脑)

  • Win11怎么打开AMD显卡控制面板(Win11怎么打开网络适配器)

    Win11怎么打开AMD显卡控制面板(Win11怎么打开网络适配器)

  • 个人所得税纳税记录
  • 如何确定合伙企业
  • 增值税10000交多少税
  • 年度应纳税所得额计算公式
  • 临时用工费账务怎么处理
  • 个体季度申报怎么写
  • 办公室购买水果做会计分录
  • 企业取得的财政补贴收入是否缴纳增值税
  • 用友如何取消月末结转
  • 投资支付的现金增加说明什么
  • 公允价值变动损益属于当期损益吗
  • 现代服务业要满足什么条件才转一般纳税人
  • 资产负债表和业务活动表勾稽关系不对怎么查
  • 企业预付的固定资产折旧
  • 坏账准备需要做账吗
  • 小企业销售费用包括
  • 进口商品关税调整
  • 结转成本是否要等货物卖出后
  • 个人出租住房需要交城镇土地使用税吗
  • 怎么远程重装win10
  • win10系统还原会删除其他盘的文件吗
  • 小规模纳税人安装费税率
  • 信息技术费用如何做分录
  • 利用网速测试器测试
  • 收到完税凭证怎么做账
  • 分配股利什么时候做账
  • 委托代销商品的科目编码
  • 鸟瞰画面
  • 无偿转让房屋
  • thinkphp post
  • 计算机网络拓扑结构有哪些
  • 花雕典故
  • 自动驾驶科普
  • 下载下来是php
  • php yield 异步
  • php处理并发有哪些技术
  • 给最爱的他
  • 金税盘一定要交费吗
  • 生活办公用品清单
  • wordpress自动更新
  • 织梦自适应代码怎么做
  • 如何查看sqlserver实例名称
  • 小规模纳税人免税怎么做账
  • 以前年度损益调整账务处理分录
  • 在建工程转出到什么科目
  • 预付账款如何结账
  • 企业营业外支出是什么意思
  • 跨行收报属于什么科目
  • 生产成本怎么结转主营业务成本分录
  • 政府会计准则具体准则的作用
  • 房地产开发企业分为几个等级
  • mysql5.0安装
  • windows开发了多久
  • Win7 64位旗舰版系统中实现照片的批量重命名
  • 苹果电脑mac系统怎么用
  • shstart.exe - shstart是什么进程 有什么用
  • win8怎么安装win10
  • win7系统c盘占用空间大
  • windows10预览版是什么
  • win8.1系统更新
  • win 10系统怎么查看网络连接
  • win8系统咋样
  • 安卓框架app
  • android开发mvc mvp mvvm
  • android开发环境的搭建步骤
  • linux怎么调用python
  • 页里面 CDATA的作用说明
  • js setmap
  • shell入门
  • 基于python的推荐系统
  • linux系统搜索文件内容
  • javascriptcsdn
  • jquery按钮点击事件
  • 广东智慧团建登录不上去怎么回事
  • 甘肃国税电子税务局
  • 车辆购置税查询平台打印
  • 价税分离有什么好处
  • 怎么查询12345的验证码
  • 人文考试多少分合格
  • 煤矸石占地需要哪些手续
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设