uniapp之页面返回并调用返回页方法

在H5页面我们只需下面这样,但是打包成APP是无效的app需要单独加上一个.$vm

js 复制代码
const currentPages = getCurrentPages();
const currentPage = currentPages[currentPages.length - 1];
currentPage[funName] && currentPage[funName]();

最终代码,细心的朋友会发现,下面获取的currentPage,H5和APP是不同的,这是因为app端是先改变路由再跳转页面,而H5端是先跳转页面再改变路由(CurrentPages喻为路由)

js 复制代码
/**
 * 返回上一页且调用上一页方法
 * @param {Object} funName 方法名
 */
export function back(funName) {
	uni.navigateBack({
	  success: () => {
	    const currentPages = getCurrentPages();
	    if (currentPages.length >= 2) {
		  // #ifdef APP
		  // app 端是先改变路由再跳转页面
	      const currentPage1 = currentPages[currentPages.length - 1];
		  currentPage1.$vm[funName] && currentPage1.$vm[funName]();
		  // #endif
		  // #ifdef H5
		  // H5 端是先跳转页面再改变路由
	      const currentPage2 = currentPages[currentPages.length - 2];
		  currentPage2[funName] && currentPage2[funName]();
		  // #endif
	    }
	  }
	});
}

/**
 * 返回上一页且刷新(上一页有pullDownRefresh方法时)
 */
export function backRefresh() {
	back('pullDownRefresh');
}
相关推荐
404NotFound3052 分钟前
利用 WebMKS 和 Java 实现前端访问虚拟机网页
前端
文心快码BaiduComate4 分钟前
插件开发实录:我用Comate在VS Code里造了一场“能被代码融化”的初雪
前端·后端·前端框架
嘻哈baby4 分钟前
搞了三年运维,这些脚本我天天在用
前端
inCBle5 分钟前
vue2 封装一个自动校验是否溢出的 tooltip 自定义指令
前端·javascript·vue.js
掘金安东尼13 分钟前
⏰前端周刊第444期(2025年12月8日–12月14日)
前端
BD_Marathon14 分钟前
Vue3_响应式数据和setup语法糖
javascript
李广山Samuel16 分钟前
Node-OPCUA 入门(2)-创建一个简单的opcua客户端
javascript
长安牧笛16 分钟前
开发课堂学生专注度分析程序,捕捉学生面部表情和动作,分析专注程度,帮助老师调整教学。
javascript
weixin_4481199417 分钟前
Datawhale Hello-Agents入门篇202512第2次作业
java·前端·javascript
BD_Marathon17 分钟前
Vue3_事件渲染命令
开发语言·javascript·ecmascript