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

  • 消费型增值税的含义
  • 资产负债表是根据什么填的
  • 企业运输没有发票
  • 建筑公司预收了款项已经开了增值税发票怎么做账
  • 长期待摊费用摊销会计分录
  • 所得税亏损年限有什么规定
  • 胶水开票开什么类目
  • 一般纳税人增值税申报操作流程
  • 一般纳税人月销售额多少免征增值税
  • 介质申报和网络申报的区别
  • 信息技术服务企业研发费用加计扣除
  • 结算业务申请书和转账支票区别
  • 清算费用会计科目设置
  • 坏账损失的核算方法一般有两种
  • 承租人转租是否要交税
  • 代扣代缴公积金有返还吗
  • 一般纳税人采购收到普通发票
  • 接收虚开增值税专用发票要判刑吗
  • 企业稀释股份
  • 工商注册需要提供什么
  • 销售电梯并安装如何缴纳增值税
  • 酒店兼营行为的税务处理?
  • 当月作废的发票是否需要报税
  • 小规模企业交纳印花税吗
  • 关于小微企业的规定
  • 按键盘不起作用怎么办
  • 收到生育津贴会计分录
  • 腾讯电脑管家网址多少
  • 浅谈12 条用于 Linux 的 MySQL/MariaDB 安全最佳实践
  • 个体户经营所得核定税率
  • thinkphp5控制器
  • unity默认存储路径
  • 在建工程主要包括哪些
  • 承租厂房需要缴纳什么税
  • el-tree方法
  • php 正则表达式
  • 库房存货标准
  • php 如何防止接口被刷
  • 密歇根湖怎么读
  • 非货币性资产交换是企业经常发生的
  • 宝塔部署django
  • 资产负债表利润表和现金流量表
  • php如何连接sql server
  • vue 组件调用
  • 报销单跨月怎么记账
  • mkdir 命令
  • 应收账款坏账准备计算表
  • 公司5个印章都刻错了
  • 企业所得税太高怎么合理规避
  • 清税证明怎么在网上申请
  • 代收代付的会计分录
  • 销售使用过的固定资产怎么填申报表
  • 代收代缴水电费协议
  • 差旅费借记什么科目
  • 事业单位的在建工程包括
  • 国有企业公司制改造 发行企业债券
  • 利用phpmyadmin写shell的方法
  • sqlserver自动更新工资
  • macbookair网页全屏
  • windows8鼠标点击右键反应慢咋回事
  • xp系统没无线网络连接怎么办
  • linux 系统升级
  • opengl教程48讲
  • js修改值
  • js原生实现call
  • bat批处理命令大全
  • android应用结构包括哪些
  • pygame rect.move
  • javascript声明变量的语句
  • jquery 模态框实现
  • 天气球球下载
  • node.js redis
  • linux用yum
  • html应用css
  • 甘肃增值税发票查验平台官网
  • 给派出所写情况说明房屋情况怎么写啊
  • 年终奖发4万扣多少税
  • 小汽车都交消费税吗
  • 上海手撕发票多少钱一本
  • 税控盘过了时间没清卡要罚多少钱
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设