千锋教育-做有情怀、有良心、有品质的职业教育机构

手机站
千锋教育

千锋学习站 | 随时随地免费学

千锋教育

扫一扫进入千锋手机站

领取全套视频
千锋教育

关注千锋学习站小程序
随时随地免费学习课程

当前位置:首页  >  技术干货  > 如何用router返回上一页

如何用router返回上一页

来源:千锋教育
发布人:xqq
时间: 2023-11-23 04:08:00 1700683680

在Web开发中,我们时常需要跳转到不同的页面和URL。然而,当我们需要在页面间切换时,如何实现返回上一页的功能呢?在本文中,我们将从多个方面探讨如何用router实现返回上一页的功能。

一、window.history方法

window.history对象提供了对浏览器历史记录的访问。通过它,我们可以实现返回上一页的功能。


window.history.back();

上述代码可以使用户返回到浏览历史记录中的前一个页面。在实际使用中,我们可以将其与router结合使用,如下所示:


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

function goBack() {
  const history = useHistory();
  history.goBack();
}

二、通过路由参数

我们也可以通过在URL上添加参数,来实现返回上一页的功能。比如,我们可以将之前的页面的URL作为参数传递给当前页面。在返回时,我们再将当前页面的URL作为参数传递回之前的页面。


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

// 前一个页面
/somePage?from=${location.pathname}}>Go to some page

// 当前页面
import { useLocation, useHistory } from 'react-router-dom';

function goBack() {
  const location = useLocation();
  const history = useHistory();
  const from = new URLSearchParams(location.search).get('from');
  history.push(from);
}

三、通过浏览器的后退按钮

当用户在网站中点击后退按钮时,浏览器会自动调用window.history.back()方法。因此,我们可以不用手动实现返回上一页的功能,而是依靠浏览器自带的后退按钮来实现。

但需要注意的是,如果用户在当前页面使用了一些页面内跳转的方法(例如锚链接),那么浏览器的后退按钮会将用户带回到之前的锚点位置,而不是之前的页面。因此,需要在设计页面时,合理使用锚链接来避免这种情况的发生。

四、通过编程方式模拟后退按钮

如果我们需要在代码中模拟后退按钮的功能,可以借助window.history模拟后退按钮的行为。


window.history.go(-1);

在上述代码中,-1表示向后回退一个页面,1表示向前前进一个页面。同样,我们可以将其与router结合使用,如下所示:


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

function goBack() {
  const history = useHistory();
  history.go(-1);
}

我们可以根据实际需要选择合适的方法实现返回上一页的功能。在实际应用中,需要遵循Web开发的规范和标准,确保代码的健壮性和可靠性。

声明:本站稿件版权均属千锋教育所有,未经许可不得擅自转载。
10年以上业内强师集结,手把手带你蜕变精英
请您保持通讯畅通,专属学习老师24小时内将与您1V1沟通
免费领取
今日已有369人领取成功
刘同学 138****2860 刚刚成功领取
王同学 131****2015 刚刚成功领取
张同学 133****4652 刚刚成功领取
李同学 135****8607 刚刚成功领取
杨同学 132****5667 刚刚成功领取
岳同学 134****6652 刚刚成功领取
梁同学 157****2950 刚刚成功领取
刘同学 189****1015 刚刚成功领取
张同学 155****4678 刚刚成功领取
邹同学 139****2907 刚刚成功领取
董同学 138****2867 刚刚成功领取
周同学 136****3602 刚刚成功领取
相关推荐HOT