位置: IT常识 - 正文

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

编辑:rootadmin
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前端开发常见问题)

  • 芒果tv随心看六个月怎么取消(芒果tv随心看六个月合约期中会员怎么取消)

    芒果tv随心看六个月怎么取消(芒果tv随心看六个月合约期中会员怎么取消)

  • 小天鹅e10故障怎么处理(小天鹅e10故障维修视频)

    小天鹅e10故障怎么处理(小天鹅e10故障维修视频)

  • 荣耀x10max如何截屏(华为荣耀x10max怎么截图)

    荣耀x10max如何截屏(华为荣耀x10max怎么截图)

  • oppo reno十倍变焦是多少w快充(opporeno十倍变焦版上市时间)

    oppo reno十倍变焦是多少w快充(opporeno十倍变焦版上市时间)

  • vivos1是玻璃机身吗(vivos7是玻璃机身吗)

    vivos1是玻璃机身吗(vivos7是玻璃机身吗)

  • 闲鱼申请退款卖家不处理会不会自动收货(闲鱼申请退款卖家还能发货吗)

    闲鱼申请退款卖家不处理会不会自动收货(闲鱼申请退款卖家还能发货吗)

  • qq里说的属性是啥(qq属性在哪里)

    qq里说的属性是啥(qq属性在哪里)

  • 电信家电智联产品有哪些(中国电信智慧家居)

    电信家电智联产品有哪些(中国电信智慧家居)

  • 拼多多换货会寄过来吗(拼多多换货寄回去后商家不发货)

    拼多多换货会寄过来吗(拼多多换货寄回去后商家不发货)

  • 苹果家人共享能看到什么(苹果家人共享能看到相册吗)

    苹果家人共享能看到什么(苹果家人共享能看到相册吗)

  • 买二手苹果电脑要注意什么(买二手苹果电脑在哪个平台好)

    买二手苹果电脑要注意什么(买二手苹果电脑在哪个平台好)

  • 钉钉null是什么意思(钉钉的出现)

    钉钉null是什么意思(钉钉的出现)

  • vivo相册密码忘了怎么办(vivo相册密码忘了怎么办 问题也忘了)

    vivo相册密码忘了怎么办(vivo相册密码忘了怎么办 问题也忘了)

  • 笔记本上有摄像头吗(笔记本上有摄像头但就是打不开)

    笔记本上有摄像头吗(笔记本上有摄像头但就是打不开)

  • 京东钢镚怎么获得(京东钢镚怎么买东西)

    京东钢镚怎么获得(京东钢镚怎么买东西)

  • 微信注销后多久再申请(微信注销后多久查不到转账记录)

    微信注销后多久再申请(微信注销后多久查不到转账记录)

  • 定位与导航的区别(定位与导航的概念)

    定位与导航的区别(定位与导航的概念)

  • 华为荣耀9x是不是屏幕指纹解锁(华为荣耀9x是不是双卡双待)

    华为荣耀9x是不是屏幕指纹解锁(华为荣耀9x是不是双卡双待)

  • 手机能连打印机打印东西吗(手机能连打印机直接打印吗)

    手机能连打印机打印东西吗(手机能连打印机直接打印吗)

  • flash被禁用如何开启(flash 被禁用)

    flash被禁用如何开启(flash 被禁用)

  • 苹果序列号f4开头啥意思(苹果序列号F4开头是哪里生产的)

    苹果序列号f4开头啥意思(苹果序列号F4开头是哪里生产的)

  • 知道抖音号怎么登录(知道抖音号怎么查手机号)

    知道抖音号怎么登录(知道抖音号怎么查手机号)

  • ios12gamecenter在哪(iphone12game center在哪)

    ios12gamecenter在哪(iphone12game center在哪)

  • 微信小程序怎么免费做(微信小程序怎么开发)

    微信小程序怎么免费做(微信小程序怎么开发)

  • max250显卡性能如何(max250显卡排行榜2019天梯)

    max250显卡性能如何(max250显卡排行榜2019天梯)

  • 硬盘240g打游戏够用吗(240g固态硬盘能装多少游戏)

    硬盘240g打游戏够用吗(240g固态硬盘能装多少游戏)

  • 前端实现分页效果(前端分页显示)

    前端实现分页效果(前端分页显示)

  • 销售软件税目
  • 利息收入需要缴纳企业所得税吗
  • 对账结算流程
  • 法人购买商业保险能由公司承担吗
  • 电子普通发票重新开
  • 计提社保公积金的会计分录
  • 业务招待费扣除计算
  • 哪些属于不动产权
  • 货币资金包括应收票据和应收账款吗
  • 白酒销售环节交消费税吗
  • 收到承兑如何贴现
  • 收据注明实际到账时间
  • 多收账款怎么账务处理
  • 公司付款给个人一定要取得发票吗
  • 小规模和一般纳税人的区别
  • 房屋租赁发票需要备注吗
  • 境外所得纳税
  • 出口贸易没有进口贸易
  • 企业发放给员工子女抚养费
  • 房地产企业收到定金 什么时候交增值税 账务处理
  • 小规模纳税人增值税超过30万怎么纳税
  • 丧失控制权合并报表内部交易抵消
  • 装修待摊费用当月摊销吗
  • 税控盘服务费抵税会计分录
  • 地方教育费附加计入什么科目
  • 信用卡核销是什么意思
  • 副调基金的会计分录怎么做?
  • 收到地税退税会计分录
  • win10 usb恢复
  • 收到投资分红怎么做账务处理?
  • androirc下载
  • 购销合同印花税计税依据
  • 理财产品利息税
  • 股权激励的账务处理
  • 年应税销售额包含哪些
  • 企业所得税若干问题
  • 电脑上fci是什么文件
  • 金融企业营业税税率是多少
  • 增值税专用发票怎么开
  • 申报表30栏一直不填写会怎么样
  • 什么叫python
  • 销售免税农产品如何开票
  • python中列表的索引用法
  • python文件间传递参数
  • Spring(十五):Spring整合MyBatis的两种方式
  • el-form表单
  • 什么是认缴出资金额
  • 出口货物退运已补税(未退税)证明
  • 企业注销指的是哪些
  • 企业所得税A类年报怎么申报
  • 建筑公司支付给农民工的工资需要取得发票吗
  • 销售费用工资是什么科目
  • 建账初期账务处理程序
  • 增值税计入固定资产的成本吗
  • jquery常用的事件绑定函数有哪些
  • solaris syslog
  • win7旗舰版无法安装net4.0
  • 微软官方重做系统
  • centos7如何修改用户名
  • bios启动项正确设置
  • win7运行慢如何解决办法
  • win1020h2累积更新
  • win10系统怎么把ie浏览器放到桌面
  • winxp开启远程控制
  • centos 做bond
  • windows找不到硬盘驱动器
  • Win7升级win10后可以删除2345吗
  • 电脑已禁用ime是什么
  • linux使用ssh远程连接服务器
  • nodejs不再维护
  • 加快构建新发展格局,着力推动高质量发展心得体会
  • android的
  • linux+php
  • js代码运行机制
  • python中的is和==的区别
  • unity ui批处理
  • js弹出提示窗口
  • js的异步解决方案有哪些
  • 噩梦pv
  • 黄金增值税管理难点
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设