当前位置: 首页 > 知识库问答 >
问题:

javascript - vue 中如何判断返回操作(包括浏览器的返回按钮)?

赖绪
2023-08-04

我的需求:

  • 先从列表=>详情页
  • 如果在详情页点击的返回按钮,则读取之前缓存的历史数据

(在详情页刷新后再点击返回,也符合条件)

此时的返回包括:

  • 浏览器的返回按钮
  • 页面中的按钮(调用router.back()/go(-1)等路由方法)

要如何全局判断用户进行了返回操作呢?

共有2个答案

弘柏
2023-08-04

你需要的是类似于App开发中的 页面栈,传统的网页开发中没有这个概念,可以尝试采用以下插件实现:

  • vue-page-stack
  • stack-keep-alive
马欣德
2023-08-04

用Vuex:
详情页:

beforeRouteLeave(to, from, next) {  if (this.$store.state.refreshed) {    this.$store.commit('setRefreshed', false);  }  next();}

列表页:

beforeRouteEnter(to, from, next) {  if (from.path === '/details' && this.$store.state.refreshed) {    // 读取缓存数据  } else {    // 重新获取数据  }  next();}

最后,在详情页的刷新按钮的点击事件里,把 refreshed 设置成 true。

methods: {  refresh() {    this.$store.commit('setRefreshed', true);    // 刷新详情页  }}
 类似资料:
  • 本文向大家介绍JavaScript阻止浏览器返回按钮的方法,包括了JavaScript阻止浏览器返回按钮的方法的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了JavaScript阻止浏览器返回按钮的方法。分享给大家供大家参考。具体分析如下: 下面的JS代码可以阻止用户点击返回按钮,非常实用,需要的朋友可以收藏一下。 希望本文所述对大家的javascript程序设计有所帮助。

  • 问题内容: 我在Django中使用python,我希望重定向用户在注销后单击“后退”按钮时重定向到登录页面。如何实现呢?在哪里写代码? 要测试django管理员是否处理此..i,请先登录django admin ..注销,然后单击“后退”按钮,然后我就可以看到上一页。为什么django管理员无法处理此问题。 这是在django admin中注销的Ccode: 问题答案: 终于找到了解决方案: 这将

  • 问题内容: 我是否可以附加功能作为按钮的单击事件,以使浏览器返回上一页? 问题答案: 在您的输入元素中添加

  • 本文向大家介绍vue浏览器返回监听的具体步骤,包括了vue浏览器返回监听的具体步骤的使用技巧和注意事项,需要的朋友参考一下 前言 分享页面时,希望点击浏览器回退按钮,回到项目首页,增加访问量。 需要监听浏览器的回退按钮,并阻止其默认事件。 具体步骤如下: 1、挂载完成后,判断浏览器是否支持popstate 2、页面销毁时,取消监听。否则其他vue路由页面也会被监听 3、将监听操作写在methods

  • 使用vue3项目,我想关闭浏览器或者关闭浏览器的标签页清除token,该怎么操作

  • 当我点击像这样的API时,我想要一个图像 当我点击这个API时,它将返回给我一个图像。