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');
}
相关推荐
爱学习的茄子几秒前
回流与重绘:性能优化的幕后英雄
前端·javascript·深度学习
Mintopia1 分钟前
计算机图形学中的摄像机系统:从像素世界的眼睛说起
前端·javascript·计算机图形学
信也科技布道师2 分钟前
高安全前端架构:Rust-WASM 黑盒技术揭秘
前端
understandme2 分钟前
维护 mysql 老代码的 json 的坑
javascript·后端
G等你下课12 分钟前
动手实现一个简易前端路由:理解 React Router 的本质
前端·javascript·react.js
Mintopia13 分钟前
Three.js 3D 柱状图制作指南:从像素到立体的魔法之旅
前端·javascript·three.js
南岸月明13 分钟前
新人开启副业,这些坑你一定要知道
前端
懒羊羊大王&18 分钟前
5、qt系统相关
前端·qt
魔都吴所谓19 分钟前
【Echarts】 电影票房汇总实时数据横向柱状图比图
javascript·ecmascript·echarts
江城开朗的豌豆22 分钟前
Vue3 数据绑定的进化:为什么Proxy取代了defineProperty
前端·javascript·vue.js