位置: IT常识 - 正文

React 路由v6 - 超全详解(react 路由参数)

发布时间:2024-01-15
React 路由v6 - 超全详解 React router v6 路由

推荐整理分享React 路由v6 - 超全详解(react 路由参数),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:react路由配置菜鸟教程,react路由详解,react 路由参数,react路由配置菜鸟教程,react两种路由的区别,react路由配置菜鸟教程,react路由配置菜鸟教程,react路由exact,内容如对您有帮助,希望把文章链接给更多的朋友!

已经习惯了 v5 版本的路由 ,那么 v6 版本的路由 该怎么应用呢?

文章目录React router v6 路由Ⅰ、路由 v6 (两种形式)Ⅱ、 动态路由Ⅲ、路由重定向Ⅳ、路由跳转 (两种形式)Ⅴ、路由懒加载Ⅰ、路由 v6 (两种形式)

方案一 : ( 不推荐 )

通过标签 嵌套 标签 的形式通过 Routes 为 包裹 Route 标签的形式

例 : 用法 👇

import { Route,Routes,BrowserRouter } from "react-router-dom";import Page1 from '../view/Page1'import Page2 from '../view/Page2'import Page404 from '../view/Page404'function App() { <BrowserRouter> <Routes> <Route path='/page1' element = {<Page1 />} /> <Route path='/page2' element = {<Page2 />} /> <Route path='*' element = {<Page404 /} /> <Routes> <BrowserRouter>}export default App;需要添加子路由 就继续嵌套要在 <Page1 /> 组件下 放入 <Outlet /> => 【确定子路由出现的位置】

例 : 子路由 👇

<Route path='/page1' element = {<Page1 />} ><Route path='/page1/test1' element = {<Test1 />} /><Route path='/page1/test2' element = {<Test2 />} /></Route>

方案二 :( 推荐 )

通过 react 17 之后推出的 hooks -> useRoutes这个 hooks ,看起来更像 vue 的路由配置,而不是堆组件的形式。

例 : App.jsx 👇

import { BrowserRouter} from "react-router-dom";import Element from './routes'function App() { return ( <BrowserRouter> <Element /> </BrowserRouter> )}export default App;

例 : 路由配置 /routes/index.jsx 👇

import { useRoutes } from "react-router-dom";import Page1 from '../view/Page1'import Page2 from '../view/Page2'import Page404 from '../view/Page404'function Element() { const element = useRoutes([ { path: '/page1', element: <Page1 /> }, { path: '/page2', element: <Page2 /> }, { path: '*', element: LazyLoad('/view/404') } ]) return (element);}export default Element;子路由可以通过 children 来嵌套实现;注意放子路由的地方同样要,再加个 <Outlet /> 来确定子路由的位置;

例 : 子路由 👇 (如下 <Page1/> 中要加个<Outlet />)

...{ path: '/page1', element: <Page1 /> children: [ { path: '/page1/aaa', element: <Aaa /> }, { path: '/page1/bbb', element: <Baa /> } ]}...Ⅱ、 动态路由React 路由v6 - 超全详解(react 路由参数)

动态路由的作用 ,就是达到路由自定义传参的作用;

① 绑定参数 方案一 : ( 组件形式 创建的路由)

<Route path = '/page1/:content' element = {<Page1 />} />

方案二 :(useRoutes 创建的路由)

...{path: '/page1/:content', element: <Page1 />},...

② 接收参数

接收的时候通过useParams钩子去接收

import {useParams} from 'react-router-dom';export default function Detail(props){ let { content } = useParams(); return( <div></div> )}Ⅲ、路由重定向

方案一 : ( 通过 Navigate API)

import { Navigate} from "react-router-dom";...{ path: '*', element: <Navigate to='/page404'/>},...

方案二 :( 自己封装 ) 例 : 封装一个组件 👇

import React,{useEffect} from 'react'import {useNavigate } from 'react-router-dom'export default function Redirect(props) { const navigate = useNavigate(); useEffect(()=>{ navigate(props.to,{replace:true}) }) return null}

例 : 使用:👇

import Redirect from './Redirect'{ path: '*', element: <Redirect to='/page404'/>},Ⅳ、路由跳转 (两种形式)

方案二 : ( 标签类型 : 和上面的 路由重定向 一样 )

import {NavLink} from 'react-router-dom'function Index() {return (<ul><li><NavLink to='page1'> 页面1 </NavLink></li><li><NavLink to='page1'> 页面2 </NavLink></li></ul>)}

方案二 : ( 方法类型 )

import { useNavigate } from 'react-router-dom'function Index() {return (<ul><li onClick={() => { useNavigate('/page1') }}>页面1</li><li onClick={() => { useNavigate('/page2') }}>页面2</li></ul>)}Ⅴ、路由懒加载

1、路由懒加载,对与 性能 来说是一个非常好的 优化点 ; 2、只有在进入该路由的时候才,去 按需加载 对应的,而不是一次性去加载全部; 3、通过 React.lazy 方法来懒加载 ; 4. 同时可以通过React.Suspense 的 fallback方法 去展示 加载中 的效果 ;

例 : 封装例子 👇 ( 同时更加简便导入 )

import { useRoutes } from "react-router-dom";import React from 'react';const LazyLoad = (path) => { //传入在view 下的路径 const Comp = React.lazy(() => import(`../view${path}`)) return ( <React.Suspense fallback={<> 加载中...</>}> <Comp /> </React.Suspense> )}function Element() { const element = useRoutes([ { path: '/page1', element: LazyLoad('/Page1') }, { path: '/page2', element: LazyLoad('/Page2') } ]) return (element);}export default Element;

本文链接地址:https://www.jiuchutong.com/zhishi/295976.html 转载请保留说明!

上一篇:vue中播放rtsp流(vue 播放视频流)

下一篇:vue3中前端处理不同数据结构的JSON(vue前端开发常见问题)

  • 天兴阳光花园(天兴阳光摄像头)(天兴阳光花园)

    天兴阳光花园(天兴阳光摄像头)(天兴阳光花园)

  • 读不出硬盘如何修复(读不出硬盘)(读不到硬盘是什么原因)

    读不出硬盘如何修复(读不出硬盘)(读不到硬盘是什么原因)

  • qq基友关系有什么用(qq基友关系有什么区别)

    qq基友关系有什么用(qq基友关系有什么区别)

  • 华硕电脑键盘没反应(华硕电脑键盘没反应是怎么回事)

    华硕电脑键盘没反应(华硕电脑键盘没反应是怎么回事)

  • 小米手机健康系统在哪里(小米手机健康系统怎么破解)

    小米手机健康系统在哪里(小米手机健康系统怎么破解)

  • 注销qq号好友能看到吗(注销qq号好友还在吗)

    注销qq号好友能看到吗(注销qq号好友还在吗)

  • 英特尔nuc能代替主机吗(英特尔nuc可以吃鸡吗)

    英特尔nuc能代替主机吗(英特尔nuc可以吃鸡吗)

  • 笔记本更新系统要多久(笔记本更新系统后没有wifi了)

    笔记本更新系统要多久(笔记本更新系统后没有wifi了)

  • 100兆宽带配多大路由器(100兆宽带配多大无线路由器)

    100兆宽带配多大路由器(100兆宽带配多大无线路由器)

  • 删去的照片在手机哪里能找回(已删除的相片在手机哪个文件夹里)

    删去的照片在手机哪里能找回(已删除的相片在手机哪个文件夹里)

  • 企业id是什么(企业id是什么意思啊)

    企业id是什么(企业id是什么意思啊)

  • 触宝电话不能免费用了(触宝电话怎么不免费了)

    触宝电话不能免费用了(触宝电话怎么不免费了)

  • 模拟摄像头怎么能变成网络的(模拟摄像头怎么接到网络录像机上)

    模拟摄像头怎么能变成网络的(模拟摄像头怎么接到网络录像机上)

  • 存放一个ascii字符占用几个字节(存入ascii码的字符和一个汉字)

    存放一个ascii字符占用几个字节(存入ascii码的字符和一个汉字)

  • 5g无线帧长是多少ms(5gnr无线帧长)

    5g无线帧长是多少ms(5gnr无线帧长)

  • 华为nova7上市时间(华为nova7上市时间及上市日期)

    华为nova7上市时间(华为nova7上市时间及上市日期)

  • 拼多多可以注销账号吗(拼多多可以注销重新申请吗)

    拼多多可以注销账号吗(拼多多可以注销重新申请吗)

  • ipad自带录音功能吗(ipad录音功能在哪里)

    ipad自带录音功能吗(ipad录音功能在哪里)

  • 手机克隆二维码在哪里(手机克隆二维码怎么扫)

    手机克隆二维码在哪里(手机克隆二维码怎么扫)

  • 苹果原彩显示有什么用(苹果原彩显示有必要开吗)

    苹果原彩显示有什么用(苹果原彩显示有必要开吗)

  • ps全称英文怎么说(ps全称英文为)

    ps全称英文怎么说(ps全称英文为)

  • 苹果抹机是什么意思(苹果抹机对手机有影响吗)

    苹果抹机是什么意思(苹果抹机对手机有影响吗)

  • pr项目文件在哪里(pr的项目在哪)

    pr项目文件在哪里(pr的项目在哪)

  • 微信打字有图片怎么弄(微信打字有图片怎么取消)

    微信打字有图片怎么弄(微信打字有图片怎么取消)

  • sql视图的作用(在sql中,视图的本质是)

    sql视图的作用(在sql中,视图的本质是)

  • 购买土地税率是多少
  • 投资性房地产在建
  • 物业公司车棚算固定资产吗
  • 乘车保险费
  • 企业缴纳增值税后还需缴纳所得税吗
  • 房地产公司销售商品房属于增值税征收范围吗
  • 资助的开发经费可税前扣除吗
  • 实习生应该如何计算个人所得税
  • 去税务局核定税种怎么填
  • 从原材料到库存商品的生产核算过程
  • 企业为职工社保补缴怎么办理
  • 空调可以开专票抵扣吗
  • 营改增后的增值税税目税率表
  • 福利费开专票怎么处理
  • 关于有什么新的政策
  • 固定资产内部调拨流程
  • 对方发票丢失开什么证明
  • 长期股权投资账务处理
  • 购进商品用于样品赠送的账务处理
  • 所得税费用属于损失吗
  • 年报的企业主营业务活动
  • 缴纳上月增值税记账凭证怎么填写
  • 商业一般纳税人税率多少
  • cmos密码和bios密码
  • 如何设置让电脑运行更快
  • php写html
  • 如何暂停win11更新
  • 其他应付款在现金流量表怎么填
  • wordpress如何使用
  • 基于transformer的文本分类
  • vue引用类型
  • 资产等于负债加所有者权益
  • 蚁群算法是什么
  • php强制下载文件在哪
  • 社保新参统委托代发银行
  • 工资计提发放会计科目
  • 各行业税点大全最新
  • 发票管理人员如何操作
  • 样品属于存货吗
  • 公司购买食品如何入账科目
  • 处置固定资产净收益属于利得吗
  • 领备用金填什么单子
  • 企业净利率多少算高
  • 认缴意思
  • 小规模纳税人零申报可以持续多久
  • 进项税准予抵扣条件有哪些
  • 加盟费明细
  • 捐赠 税收
  • 质量问题的扣款计入什么科目
  • 国家高新技术补助
  • 筹建期的开办费开业后如何处理
  • 长期股权投资成本法会计处理
  • 小规模转一般纳税人条件最新政策
  • 无形资产减值损失计入管理费用
  • 如何结转完工产品成本和已销产品成本
  • 计提加计抵减额的会计处理
  • mysql的日志
  • 行为异常不能使用优惠
  • Win10 64位系统下鼠标右键刷新没反应的解决方案
  • xp局域网
  • freebsd忘记root密码
  • vmware10虚拟机安装
  • xp系统安装版如何安装
  • linux去掉文件换行符
  • 电脑w7系统怎么保存图片
  • 怎么学linux
  • 极限竞速中心应用程序
  • 批处理命令大全及用法
  • js中匿名函数的作用
  • 可重复进行编程的可编程器件有 ( )
  • PyCharm在win10的64位系统安装实例
  • jquery序列化json
  • linux c语言获取当前路径
  • 批处理实现语音报警
  • win10的安装方式有哪些
  • python 嵌套
  • 国家税务总局介绍
  • 设备租赁增值税怎么抵扣
  • 深圳社保最迟每月几号交啊多少钱
  • 四川国税网上营业厅
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号