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');
}
相关推荐
满栀5851 小时前
插件轮播图制作
开发语言·前端·javascript·jquery
切糕师学AI1 小时前
Vue 中的计算属性(computed)
前端·javascript·vue.js
程琬清君1 小时前
Vue3DraggableResizable可移动范围有问题
前端·javascript·vue.js
lkbhua莱克瓦241 小时前
CSS盒子模型:网页布局的基石与艺术
前端·css·笔记·javaweb
Curvatureflight1 小时前
前端性能优化指南:从加载到交互的每一毫秒
前端·性能优化·交互
♩♬♪.1 小时前
HTML学校官网静态页面
前端·css·html
天天开心a1 小时前
Vue.js 基础教程笔记(一):Vue入门与环境搭建
前端·javascript·vue.js·笔记·前端框架
weixin_446260851 小时前
解锁 React 开发新体验!Puck - 智能可视化编辑器
前端·react.js·编辑器
hzb666661 小时前
xd_day28js原生开发-day31 day41asp.net
开发语言·前端·javascript·安全·web安全
tan 912 小时前
KaliLinux2025.4 root用户修改显示语言
linux·服务器·前端·安全