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

下面我将为您详细讲解"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脚本无法直接改变Asp.net中Checkbox控件的Enable属性的解决方法

    当我们在Asp.net中使用JavaScript脚本时,有时候需要使用JavaScript来改变Checkbox控件的Enable属性,但是发现无法直接操作。这是由于Asp.net默认会将Checkbox渲染成一个带有许多内部属性的HTML控件。 为了解决这个问题,我们可以通过以下两种方法来实现改变Checkbox控件的Enable属性: 方法一:通过查找H…

    JavaScript 2023年6月11日
    00
  • ASP.NET入门随想之检票的老太太

    ASP.NET入门随想之检票的老太太 检票的需求 假设我们有一个旅游景点,景点内有一个门口,游客需要向门口处的老太太出示购票凭证,才能被允许进入景区。我们需要一个简单的系统,记录每位游客的购票情况并实时更新,向老太太提供明确的验证结果。 解决方案 基于上述的需求,我们可以使用ASP.NET框架来开发一个Web应用程序,并利用ASP.NET的强大功能来实现检票…

    JavaScript 2023年6月11日
    00
  • JS字符串常用操作方法实例小结

    那我来为你详细讲解一下“JS字符串常用操作方法实例小结”的完整攻略。 概述 在JavaScript中,字符串是一个常用的数据类型,常常用于存储和处理文本信息。在处理字符串时,有许多常用的操作方法,如截取字符串、查找子串、替换字符串等,本文将对这些方法进行详细的介绍和实例展示。 字符串基本操作方法 1. 获取字符串长度 方法: length 作用: 获取字符串…

    JavaScript 2023年5月28日
    00
  • javascript中Date对象的使用总结

    下面就是一份详细的“JavaScript中Date对象的使用总结”攻略。 1. 引言 在JavaScript中,Date对象是处理日期和时间的重要组件,它提供了很多常见的日期和时间操作方法。本文将简要介绍Date对象的基本用法和常用方法。 2. 创建Date对象 可以使用new Date()语法创建一个Date对象,表示当前日期和时间: const date…

    JavaScript 2023年5月27日
    00
  • Dialog底部弹出自定义view并且伴随动画弹出和消失

    要实现Dialog底部弹出自定义view并且伴随动画弹出和消失,我们可以使用以下步骤: 自定义Dialog布局:创建一个XML文件来定义我们Dialog的布局,包括我们想要显示的视图。 示例1: <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android&qu…

    JavaScript 2023年6月10日
    00
  • JavaScript判断表单中多选框checkbox选中个数的方法

    当我们需要检查表单中多选框checkbox的选中个数时,我们可以使用JavaScript编写代码来完成此任务。以下是一些检查多选框选中个数的方法: 方法一:使用原生JavaScript 获取多选框节点列表 我们需要先通过document.getElementsByName()方法获取包含多选框元素的节点列表。以下代码展示了如何获取名称为“items”的多选框…

    JavaScript 2023年6月10日
    00
  • html嵌入javascript代码的三种方式

    HTML嵌入JavaScript代码通常有三种方式:内联(Inline)、内部(Internal)、外部(External)。 Inline(内联) 内联是将JavaScript代码直接写在HTML元素的属性中。由于代码与HTML元素混合在一起,这种方式不易维护和阅读,推荐在特定环境下使用。 以下是内联的示例: <button onclick=&quo…

    JavaScript 2023年5月18日
    00
  • javascript实现客户端兼容各浏览器创建csv并下载的方法

    在JavaScript中,可以通过Blob对象和URL.createObjectURL()方法来生成CSV文件,并通过a标签的download属性实现文件的下载。下面是实现客户端兼容各浏览器创建CSV并下载的完整攻略: 准备工作 在代码中创建用户需要下载的CSV内容数据 var data = [ [‘姓名’, ‘年龄’, ‘性别’], [‘张三’, ’18’…

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