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

javascript - vue3 h5网页,safari浏览器使用手势右滑返回上一页,上一页不执行任何js?

南门欣怡
2023-04-20

问题:A页面正常跳转B页面,B页面用手势右滑屏幕返回到A页面,A页面不执行任何生命周期方法(onMounted,watch等等)如果使用浏览器底部的返回按钮,则是正常的
技术栈:vue3
环境:iphone12,iOS16
期望:需要执行一个在onMounted里面的方法,获取新数据

共有2个答案

汝开畅
2023-04-20
window.addEventListener('pageshow', function(event) {
  if (event.persisted) { // 判断是否从缓存中恢复页面
    console.log('执行了pageshow');
    // 这里添加需要执行的方法
  }
});
window.addEventListener('pagehide', function(event) {
  if (event.persisted) { // 判断是否缓存当前页面
    console.log('执行了pagehide');
  }
});

或者用路由守卫

const router = createRouter({
  routes: [
    {
      path: '/A',
      name: 'A',
      component: A,
      beforeRouteUpdate(to, from, next) {
        // 这里添加需要执行的方法
        console.log('执行了beforeRouteUpdate');
        next();
      }
    },
    {
      path: '/B',
      name: 'B',
      component: B
    }
  ]
})

或者这个

// 在 A 页面中添加监听器
window.addEventListener('popstate', function(event) {
  console.log('执行了popstate');
});
诸腾
2023-04-20

Safari浏览器手势右滑返回上一页时,上一页会从缓存中加载,而不会重新执行生命周期钩子,你可以写一个 pageshow 事件监听器。

你在 A 页面中,你可以这样处理一下:

import { onMounted, onUnmounted } from 'vue';
onMounted(() => {
    window.addEventListener('pageshow', onPageShow);
});

onUnmounted(() => {
    window.removeEventListener('pageshow', onPageShow);
});
function onPageShow(event) {
      if (event.persisted) {
        // 页面是从缓存加载的,这里执行你的逻辑
   }
}
 
 类似资料:
  • 问题内容: 我是否可以附加功能作为按钮的单击事件,以使浏览器返回上一页? 问题答案: 在您的输入元素中添加

  • 有没有一种聪明的方法可以回到Angular 2的最后一页? 像这样的东西 例如,C页有一个返回按钮, > A页- 第B页- 路由器是否有此历史信息?

  • 我正在使用itext创建pdf,如下所示: 现在,在整个程序中,有许多地方我正在使用 我正在用 是否可以返回到第3页,在不使用PDFReader阅读创建的pdf的情况下向该页添加文本? 我已经试过了。setPageCount(3),但它似乎不起作用(我不确定这是否是我需要的方法)。

  • 问题内容: 如何防止使用JavaScript浏览网页? 问题答案: 使用可以显示消息,但不会中断导航(因为为时已晚)。但是,使用会中断导航: 注意:返回空字符串,因为较新的浏览器提供了诸如“任何未保存的更改将丢失的信息”之类的消息,这些消息不能被覆盖。 在较旧的浏览器中,您可以指定要在提示中显示的消息:

  • 问题内容: 我需要编写需要执行以下操作的机器人: 转到jsp页面并通过以下方法搜索内容: 1:在搜索框上写一些东西 2:点击搜索按钮(提交按钮) 3:单击结果按钮/链接之一(同一jsp页面,但输出不同) 4:获取新页面的整个html(同一jsp页面,但输出不同) 第四项可以通过屏幕抓取来完成,我认为我不需要帮助。但是我需要一些指导来做从1到3的选项。任何链接或只是一些可以帮助我Google学习的关

  • 本文向大家介绍Vue移动端右滑屏幕返回上一页附源码下载,包括了Vue移动端右滑屏幕返回上一页附源码下载的使用技巧和注意事项,需要的朋友参考一下 有些时候我们玩手机更喜欢使用手势滑动带来的用户操作体验。Vue touch directive是一个用于移动设备操作指令的轻量级的VUE组件。使用它可以轻松实现屏幕触控、滑动触发事件,提高用户体验。本文结合实例讲解如何实现Vue移动端右滑屏幕返回上一页。