详解 React 中的路由跳转及传参方式

· 约 7 分钟读完

React 是一个非常流行的前端框架,它提供了一种非常方便的方式来构建 SPA(Single Page Application)应用程序。在 React 中,路由是非常重要的一部分,因为它可以让我们在应用程序中实现不同页面之间的切换。本文将详细介绍 React 中的路由跳转及传参方式。

React Router

React Router 是一个非常流行的 React 路由库,它提供了一种方便的方式来实现路由跳转。它支持多种路由类型,包括 HashRouter、BrowserRouter、MemoryRouter 等。在这里,我们将使用 BrowserRouter 作为我们的路由器。

安装

要使用 React Router,我们需要先安装它。可以使用 npm 或 yarn 进行安装:

或

使用

在使用 React Router 之前,我们需要先导入它。可以使用以下代码导入:

上面的代码导入了 BrowserRouter、Route 和 Link 组件。BrowserRouter 是我们的路由器,Route 用于定义路由匹配规则,Link 用于定义导航链接。

在使用 BrowserRouter 之前,我们需要将整个应用程序包装在 BrowserRouter 组件中。可以使用以下代码:

上面的代码将应用程序包装在 BrowserRouter 组件中。现在我们可以开始定义路由规则了。可以使用 Route 组件定义路由规则。例如,以下代码定义了一个路由规则,将 /home 映射到 Home 组件:

上面的代码定义了一个路由规则,将 /home 映射到 Home 组件。当用户访问 /home 时,将渲染 Home 组件。

现在我们可以使用 Link 组件定义导航链接。例如,以下代码定义了一个导航链接,将用户导航到 /home:

上面的代码定义了一个导航链接,将用户导航到 /home。当用户点击链接时,将跳转到 /home。

跳转方式

在 React Router 中,有两种方式可以实现路由跳转:声明式导航和编程式导航。

声明式导航

声明式导航是一种在 JSX 中使用 Link 组件的方式,可以让用户单击链接时自动导航到目标页面。例如,以下代码定义了一个导航链接,将用户导航到 /home:

上面的代码定义了一个导航链接,将用户导航到 /home。当用户单击链接时,将自动导航到 /home。

编程式导航

编程式导航是一种在 JavaScript 代码中使用编程方式实现路由跳转的方式。例如,以下代码在用户单击按钮时使用编程方式实现了路由跳转:

上面的代码在用户单击按钮时使用编程方式实现了路由跳转。当用户单击按钮时,将调用 handleClick 函数,并使用 history.push("/home") 实现路由跳转。

传递参数

在实际开发中,我们经常需要在不同页面之间传递参数。在 React Router 中,有多种方式可以实现参数传递。

路径参数

路径参数是一种在 URL 中传递参数的方式。例如,以下代码定义了一个路由规则,将 /user/:id 映射到 User 组件:

上面的代码定义了一个路由规则,将 /user/:id 映射到 User 组件。在 /user/1 中,1 是一个参数,可以在 User 组件中通过 props.match.params.id 获取。

查询参数

查询参数是一种在 URL 中传递参数的方式。例如,以下代码定义了一个导航链接,将用户导航到 /user?id=1:

上面的代码定义了一个导航链接,将用户导航到 /user?id=1。可以在 User 组件中通过 props.location.search 获取查询参数。

状态对象

状态对象是一种在路由之间传递数据的方式。例如,以下代码使用状态对象传递了一个名为 name 的参数:

上面的代码使用状态对象传递了一个名为 name 的参数。可以在 User 组件中通过 props.location.state 获取状态对象。

示例代码

下面是一个完整的示例代码,演示了如何使用 React Router 实现路由跳转及参数传递:

上面的代码演示了如何使用 React Router 实现路由跳转及参数传递。在 App 组件中,我们定义了两个导航链接和一个按钮,分别使用了不同的方式实现了路由跳转和参数传递。在 User 组件中,我们演示了如何获取路径参数、查询参数和状态对象。

来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/67d54d0ea941bf71349cdec2