react-router JS 控制路由跳转实例

yizhihongxing

下面我将为您详细讲解"react-router JS 控制路由跳转实例"的攻略步骤。

步骤一:安装react-router

在项目中安装react-router-dom依赖包,react-router-dom是基于ReactDOM封装,提供了一些跟浏览器url地址相关的组件。

npm install react-router-dom --save

步骤二:基本使用方式

1. 路由定义

Route:用于路由匹配的组件,包含三个属性path、component、exact,分别表示路径、组件、是否精确匹配。例如:

import React from 'react'
import { Route } from 'react-router-dom'
import Home from './pages/home'
import About from './pages/about'

export default function () {
  return (
    <>
      <Route path="/" exact component={Home}/>
      <Route path="/about" component={About}/>
    </>
  )
}

2. 路由导航

Link:用于路由跳转的组件,点击后会跳转到指定路径。

import React from 'react'
import { Link } from 'react-router-dom'

export default function () {
  return (
    <>
      <Link to="/">返回首页</Link>
      <Link to="/about">跳转到关于页</Link>
    </>
  )
}

3. 路由跳转

history:路由历史对象,提供了一些方法来进行路由跳转。

  • push(path, [state]):跳转到指定路径,并将 state 对象传递给目标路由组件。

```jsx
import React from 'react'

export default function ({ history }) {
function handleClick () {
history.push('/about', { from: 'Home' })
}

return (
  <>
    <button onClick={handleClick}>跳转到关于页并传参</button>
  
)

}
```

  • replace(path, [state]):替换当前路径,并将 state 对象传递给目标路由组件。

```jsx
import React from 'react'

export default function ({ history }) {
function handleClick () {
history.replace('/about', { from: 'Home' })
}

return (
  <>
    <button onClick={handleClick}>跳转到关于页并传参(替换路由)</button>
  
)

}
```

步骤三:示例演示

下面通过两个示例说明路由跳转:

1. 直接跳转到指定页面

import React from 'react'
import { Route, Switch, Link, useHistory } from 'react-router-dom'
import Home from './pages/home'
import About from './pages/about'

export default function () {
  return (
    <>
      <nav>
        <Link to="/">首页</Link>
        <Link to="/about">关于</Link>
      </nav>
      <Switch>
        <Route path="/" exact component={Home} />
        <Route path="/about" component={About} />
      </Switch>
    </>
  )
}

2. 编程式导航并传递参数

import React from 'react'
import { useHistory } from 'react-router-dom'

export default function () {
  const history = useHistory()

  function handleClick () {
    history.push('/about', { name: 'Jack' })
  }

  return (
    <>
      <button onClick={handleClick}>导航到关于页</button>
    </>
  )
}

这样就完成了跳转到关于页面,并且传递了一个name参数。

总结一下:

react-router 是一款专门为单页面应用程序开发设计的路由组件,支持浏览器端以及服务端渲染(SSR)。在使用的过程中我们只需在导航中定义好所需的路由和组件,然后使用内置的API或者钩子函数实现路由的跳转以及参数的传递即可。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:react-router JS 控制路由跳转实例 - Python技术站

(0)
上一篇 2023年6月11日
下一篇 2023年6月11日

相关文章

  • javascript 四十条常用技巧大全

    JavaScript 四十条常用技巧大全 JavaScript 是一门优美、灵活和富有表现力的编程语言,拥有强大的能力和丰富的功能。本文将介绍 JavaScript 的四十个常用技巧,帮助您更好地使用此语言。 1. 使用 const 和 let 关键字 在声明变量时,使用 const 和 let 关键字可以避免意外给变量赋值,同时也可以使代码更清晰易懂。 c…

    JavaScript 2023年5月18日
    00
  • javascript字母大小写转换的4个函数详解

    下面是“Javascript字母大小写转换的4个函数详解”的完整攻略。 1. toUpperCase()函数 该函数可以将字符串中的字母全部转换成大写。 语法格式: string.toUpperCase(); 示例: var str1 = ‘hello world’; console.log(str1.toUpperCase()); // 输出: ‘HELL…

    JavaScript 2023年5月27日
    00
  • 详解JavaScript实现JS弹窗的三种方式

    详解JavaScript实现JS弹窗的三种方式 前言 在网页开发中,经常会用到弹窗这个功能。弹窗可以用来展示一些重要信息、提醒用户进行操作,甚至用来进行登录等相关操作。本文将详细介绍 JavaScript 实现三种 JS 弹窗的方式。 方式一:原生 JavaScript 实现 原生 JavaScript 实现弹窗的方式主要使用 window.alert()、…

    JavaScript 2023年5月18日
    00
  • js 点击a标签 获取a的自定义属性方法

    获取 <a> 标签的自定义属性是 JavaScript 中常见的需求之一,可以使用以下步骤和示例来实现: 步骤 首先,需要给 <a> 标签添加自定义属性,例如添加 data-* 属性,其中 * 替换为具体的属性名,例如 data-link。 接着,在 JavaScript 中,可以通过获取对应 <a> 标签的 DOM 元素…

    JavaScript 2023年6月11日
    00
  • JSON辅助格式化处理方法

    JSON格式是一种轻量级的数据交换格式,常用于前后端数据传输和存储。而格式杂乱、不易阅读的JSON数据对于开发和调试过程中处理和理解都会造成困难。因此,JSON辅助格式化处理方法就变得非常重要,本文将会详细讲解该方法的攻略。 什么是JSON格式化? JSON格式化是指通过对不可读的JSON数据按照一定的规则进行排版和缩进,使其更易于阅读和理解的过程。常规的J…

    JavaScript 2023年5月27日
    00
  • Json文件格式化方法详解

    Json文件格式化方法详解 什么是Json? Json(JavaScript Object Notation)是一种轻量级的数据交换格式,它基于JavaScript语言的子集,采用完全独立于编程语言的文本格式来存储和表示数据。Json由于具有简洁和易读的特点,得到了越来越广泛的应用。 Json文件格式化方法详解 在实际的开发中,有时候我们需要处理包含大量数据…

    JavaScript 2023年6月11日
    00
  • JavaScript实现世界各地时间显示

    当使用 JavaScript 实现世界各地时间显示时,我们可以利用 Date 对象和其方法,将获取的世界各地时区与本地时间进行计算再进行显示。 以下是实现该功能的完整攻略: 步骤一:获取本地时间 在 JavaScript 中,我们可以通过创建 Date 实例来获取当前本地时间。下面是一个获取本地时间的实例: const localTime = new Dat…

    JavaScript 2023年5月27日
    00
  • javascript原生ajax写法分享

    下面是“javascript原生ajax写法分享”的完整攻略: 什么是ajax? Ajax(Asynchronous JavaScript and XML)是一种用于创建快速动态网页的技术,利用异步传输数据,实现网页无需刷新就能实现获取和更新数据。它最大的优点就是在不刷新页面的情况下与服务器端进行通信,提高用户的交互体验。 原生ajax实现步骤 步骤一:创建…

    JavaScript 2023年6月11日
    00
合作推广
合作推广
分享本页
返回顶部