当前位置: 首页 > news >正文

uni-app中,页面跳转前,进行拦截处理的方法

个人需求阐述:

        当用户在页面A中,填写了内容之后,没有点击“保存/确定”,直接通过点击返回按钮或者手机的物理返回键直接返回时,需要给出一个二次确认的弹层,当用户点击确定离开之后,跳转到页面B,点击取消,页面不跳转

页面A的核心代码如下:

<button @click="goPage">离开此页面,前往B页面</button>import { onLoad, onUnload } from '@dcloudio/uni-app'onLoad(() => {console.log('页面加载了')uni.addInterceptor('navigateTo', interceptor)
})onUnload(() => {console.log('页面被卸载了')uni.removeInterceptor('navigateTo')
})// 拦截器
const interceptor:UniApp.InterceptorOptions= {async invoke(options: UniApp.NavigateToOptions) {const flag = await leaveBeforePage()if (flag) {return options} else {return false}}}// 离开页面前的判断
const leaveBeforePage = (): Promise<boolean> => {return new Promise((resolve) => {uni.showModal({content: '有信息未被保存,确认离开当前页面?',showCancel: true,success: ({ confirm }) => {if (confirm) {resolve(true)} else {resolve(false)}}})})
}// 手动点击返回页面B
const goPage = () => {uni.navigateTo({ url: '/pages/home/home' })
}

注意:如果是点击tabBar的按钮进行切换时,页面离开时的拦截器会无效,tabBar页面的拦截需要在onShow中处理。

本文是作者原创,大家在使用中有问题,欢迎留言评论!

http://www.lryc.cn/news/339724.html

相关文章:

  • Jmeter参数化的 4 种方式用法总结
  • 华为OD机试 - 连续天数的最高利润额(Java 2024 C卷 100分)
  • C语言——内存函数的实现和模拟实现
  • 如何优化邮箱Webhook API发送邮件的性能?
  • OceanBase V4.X中常用的SQL(一)
  • 代码随想录算法训练营第五十天|123.买卖股票的最佳时机III 188.买卖股票的最佳时机IV
  • Composer安装与配置:简化PHP依赖管理的利器(包括加速镜像设置)
  • 灯塔:抽象类和接口笔记
  • mybatis 入门
  • Spring-AI-上下文记忆
  • 内存函数memcpy、mommove、memset、memcmp
  • symfony框架介绍
  • 【计算机毕业设计】游戏售卖网站——后附源码
  • LabVIEW电信号傅里叶分解合成实验
  • Docker 学习笔记(六):挑战容器数据卷技术一文通,实战多个 MySQL 数据同步,能懂会用,初学必备
  • csdn怎么变得这么恶心,自动把一些好的文章分享改成了vip可见
  • 自然语言处理NLP:文本预处理Text Pre-Processing
  • 家庭网络防御系统搭建-虚拟机安装siem/securityonion网络连接问题汇总
  • 2024年外贸行业营销神器推荐
  • k8s高可用集群部署介绍 -- 理论
  • 【GDAL-Python】1-在Python中使用GDAL读写栅格文件
  • 【C++】explicit关键字详解(explicit关键字是什么? 为什么需要explicit关键字? 如何使用explicit 关键字)
  • maven引入外部jar包
  • 李沐37_微调——自学笔记
  • 【小程序】生成短信中可点击的链接
  • 欧拉函数(模板题)
  • Thingsboard PE 白标的使用
  • 智能物联网远传冷水表管理系统
  • Qt教程3-Ubuntu(x86_64)上配置arm64(aarch64)交叉编译环境及QT编译arm64架构工程
  • 2024年华为OD机试真题-最长子字符串的长度(二)-Python-OD统一考试(C卷)