返回顶部
首页 > 资讯 > 前端开发 > JavaScript >Reactrouter基础使用方法详解
  • 488
分享到

Reactrouter基础使用方法详解

ReactrouterReactrouter使用方法 2023-05-17 05:05:49 488人浏览 八月长安
摘要

目录React-routerbrowserHistoryReachRouterreact-router 1、使用方法 <Router history={hashHistory}

react-router

1、使用方法

<Router history={hashHistory}>
 <Route path="/" component={App}/>
 <Route path="/repos" component={Repos}/>
 <Route path="/about" component={About}/>
</Router>

2、嵌套路由、path、通配符

Route 可以嵌套使用。

path 属性指定路由的匹配规则。

<Router history={hashHistory}>
 <Route path="/user" component={App}>
  <Route path="/repos" component={Repos}/>
  <Route path="/about" component={About}/>
 </Route>
</Router>
<Route path="/hello/:name">

// :paramName 匹配 URL 的一个部分,直到遇到下一个/、?、#为止。

// 匹配 /hello/michael

// 匹配 /hello/ryan

<Route path="/hello(/:name)"> // ()表示 URL 的这个部分是可选的。

// 匹配 /hello

// 匹配 /hello/michael

// 匹配 /hello/ryan

<Route path="/files/*.*"> // *匹配任意字符,直到模式里面的下一个字符为止。匹配方式是非贪婪模式。

// 匹配 /files/hello1.jpg

// 匹配 /files/hello2.html

<Route path="/files/*"> 

// 匹配 /files/a

// 匹配 /files/a/b

<Route path="/files/**"> // ** 匹配任意字符,直到下一个/、?、#为止。匹配方式是贪婪模式。

// 匹配 /files/a

// 匹配 /files/indexa

3、histroy 属性

Router 组件的 history 属性,用来监听浏览器地址栏的变化,并将 URL 解析成一个地址对象,供 React Router 匹配。

history 属性,常用的 2 种:

(1).hashHistory

如果设为 hashHistory,路由将通过 URL 的 hash 部分(#)切换,URL 的形式类似 example.com/#/user/user1。使用 hashHistory 的时候,因为 url 中 # 符号的存在,从 /#/ 到 /#/user?name=zhangsan 浏览器并不会去发送一次 request,react-router 自己根据 url 去 render 相应的模块。

browserHistory

如果设为 browserHistory,浏览器的路由就不再通过 Hash 完成了,而显示正常的路径:example.com/some/path,背后调用的是浏览器的 History api

使用 browserHistory 的时候,浏览器从 / 到 /user 是会向 server 发送 request 的。所以 server 端是要做特殊配置的;否则用户直接向服务器请求某个子路由,会显示网页找不到的 404 错误。

import { browserHistory } from 'react-router'
render(
 <Router history={browserHistory} routes={routes} />,
 document.getElementById('app')
)

ReachRouter

Reach Router 也提供了 Router 与 Link 组件,和 React Router 不同,它将直接将对应的组件写在 Router 组件下,而不是,这么做无疑大大简化了逻辑。

import { React } from "react"
import { render } from "react-dom"
import { Router, Link } from "@reach/router"
let Home = () => <div>Home</div>
let Dash = () => <div>Dash</div>
render(
 <Router>
  <Home path="/" />
  <Dash path="dashboard" />
 </Router>
)

Reach Router 的参数接收方法就好像是直接给这个组件传递了参数的 Props 一样,比 React Router 方便很多。

<Home path='/user/:id'>
const Home = ({id})=>{
  return (
    <span>{id}</span>
  )
}

Reach Router 渲染有一个策略,一个路由下只会渲染一个最符合条件的路由。

嵌套路由

render(
 <Router>
  <Home path="/" />
  <Dash path="dashboard">
   <Invoices path="/invoices" />
   <Team path="team" />
  </Dash>
 </Router>
)
const NotFound = () => (
 <div>Sorry, nothing here.</div>
)
render(
 <Router>
  <Home path="/" />
  <Dash path="dashboard">
   <DashboardGraphs path="/" />
   <InvoiceList path="invoices" />
  </Dash>
  <NotFound default />
 </Router>
)

到此这篇关于React router基础使用方法详解的文章就介绍到这了,更多相关React router内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

--结束END--

本文标题: Reactrouter基础使用方法详解

本文链接: https://lsjlt.com/news/210715.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • Reactrouter基础使用方法详解
    目录react-routerbrowserHistoryReachRouterreact-router 1、使用方法 <Router history={hashHistory}...
    99+
    2023-05-17
    React router React router使用方法
  • reactrouter零基础使用教程
    目录安装配置路由添加一个新页面测试路由配置未找到的路由跳转页面通过 js通过 dom嵌套页面安装 既然学习 react router 就免不了运行 react 安装 react np...
    99+
    2024-04-02
  • GoLangbytes.Buffer基础使用方法详解
    目录一、bytes.Buffer的基础知识二、bytes.Buffer类型的值已读计数的作用三、bytes.Buffer的扩容策略四、bytes.Buffer的哪些方法会造成内容的泄...
    99+
    2023-03-19
    GoLang bytes.Buffer Go bytes.Buffer
  • Java基础之详解HashSet的使用方法
    Java HashSet HashSet 基于 HashMap 来实现的,是一个不允许有重复元素的集合。 HashSet 允许有 null 值。 HashSet 是无序的,即不会记录...
    99+
    2024-04-02
  • java方法与数组基础使用详解
    目录一、方法的使用1、方法的定义2、方法重载二、数组的定义和使用1、数组的基本概念(1)数组的创建(2)数组的初始化(3)数组的遍历2、数组是引用类型(JVM的内存分布)3、引用变量...
    99+
    2024-04-02
  • Android基础控件RadioGroup使用方法详解
    RadioGroup是Android中的一个基础控件,用于实现一组单选按钮,同一时间只能选择一个单选按钮。RadioGroup的使用...
    99+
    2023-08-08
    Android
  • java基础之方法详解
    目录一、什么是方法二、方法的定义三、方法的调用四、方法的重载五、递归一、什么是方法 Java方法是语句的集合,他们在一起执行一个功能。 1.方法是解决一类问题的步骤的有序...
    99+
    2024-04-02
  • 详解Mysql基础语法的使用
    MYSQL介绍 MySQL是一个关系型数据库管理系统,由瑞典MySQL AB 公司开发,目前属于 Oracle 旗下产品。MySQL 是最流行的关系型数据库管理系统之一,在 WEB 应用方面,MySQL是最...
    99+
    2024-04-02
  • JavaBigDecimal基础用法详解
    目录一、BigDecimal概述二、BigDecimal常用构造函数2.1、常用构造函数2.2、使用问题分析三、BigDecimal常用方法详解3.1、常用方法3.2、BigDeci...
    99+
    2024-04-02
  • Spring零基础到进阶之使用方法详解
    目录一.Spring的创建和使用1.创建一个Maven项目2.添加Spring框架支持3.添加启动类二.存储Bean1.添加配置文件(非第一次省略此步)2.创建Bean对象2.1.创...
    99+
    2024-04-02
  • 【Java 基础篇】Java方法引用详解
    文章目录 导言一、方法引用的概念二、方法引用的语法三、方法引用的使用方法四、方法引用的限制和注意事项总结 导言 Java方法引用是Java 8引入的一项重要特性,它提供了一种简洁、可读...
    99+
    2023-09-02
    java jvm 开发语言
  • Android SurfaceView基础用法详解
    Android 游戏开发框架核心组件 核心组件介绍 SurfaceView 介绍 SurfaceView 介绍 SurfaceView 就是带 Surface 的 vie...
    99+
    2024-04-02
  • Python selenium基础用法详解
    ​  活动地址:CSDN21天学习挑战赛 学习的最大理由是想摆脱平庸,早一天就多一份人生的精彩;迟一天就多一天平庸的困扰。 学习日记 目录 学习日记 一、Selenium库介绍 1、Selenium简介 2、Selenium的安装 3...
    99+
    2023-09-08
    python selenium
  • Java基础之方法重写详解
    一、java方法重写 方法的重写是子类根据需求对父类继承的方法进行重新的编写,在重写时,可以使用super方法的方式来保留父类中的方法,注意:构造方法不可以被重写。 创建一个人类,属...
    99+
    2024-04-02
  • CobaltStrike使用教程详解(基础)
    声明:本文仅限学习研究讨论,切忌做非法乱纪之事! 大家好,今天简单来聊聊CobaltStrike,这是我们后渗透阶段必不可少的神器。 Cobalt Strike 是一款流行的渗透测试工具,广泛用于红队操作和渗透测试。它由Raphael Mu...
    99+
    2023-09-13
    php 开发语言
  • go基础语法50问及方法详解
    目录1.使用值为 nil 的 slice、map会发生啥2.访问 map 中的 key,需要注意啥3.string 类型的值可以修改吗4.switch 中如何强制执行下一个 case...
    99+
    2023-01-08
    go基础语法 go语法
  • pytorchDataLoaderj基本使用方法详解
    目录一、DataLoader理解二、DataLoader基本使用方法定义数据集定义DataLoader在训练过程中遍历DataLoader使用DataLoader实现多GPU训练三、...
    99+
    2023-05-17
    pytorch DataLoader基本方法 pytorch DataLoader
  • oracle基础语法详解
    Oracle数据库的初步学习 数据库的安装及其配置,使用默认选项进行安装即可 oracle的几种常见客户端 Web端:https://localhost:5500/em(浏览器...
    99+
    2024-04-02
  • Python3 基础语法详解
    目录编码标识符python保留字注释行与缩进多行语句数字(Number)类型字符串(String)空行等待用户输入同一行显示多条语句多个语句构成代码组print 输出import 与...
    99+
    2024-04-02
  • python链表的基础概念和基础用法详解
    本文为大家分享了python链表的基础概念和基础用法,供大家参考,具体内容如下 一、什么是链表 链表是由多个不同的节点组成,每个节点通过指针区域关联到一起链表的头指针,指向了头节点,...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作