uniapp返回上一页(多页),并刷新返回的页面

时间:2025-02-14 10:04:41

因为公司项目后面要打包多个端,所以后面用到了uniapp。

页面跳到B页面后,这时需要返回到A页面。或者A->B->C,要从C返回到A,代码里我有写注释
这是我在网上看到的,并且改进了一下

         // 返回上一页或者多页
		// 这个函数建议放到公共的地方,很多页面都需要
		backPageRefresh(page) { // page这个值如果你只返回上一页可以不用传,返回上上页就传2,以此类推
			let pages = getCurrentPages(); // 当前页面
			let i = 0
			if (page) {
				i = page - 1
			}
			let beforePage = pages[pages.length - (2 + i)]; // 前一个页面或者更多  beforePage 这个值当你刷新浏览器后是无法返回的,需要用到浏览器历史记录返回上一页 ()
			if (beforePage && beforePage.$vm.refreshRequest) {
				uni.navigateBack({
					delta: page || 1,
					success: function() {
						beforePage.$vm.refreshRequest(); // 执行前一个页面或者前几个页面并且刷新该页面
					}
				});
			} else {
				history.back() // 浏览器的方法返回上一页
			}
		}

2.需要的地方调用这个方法

         this.backPageRefresh() // 或者 (n)

3.刷新跳转过来的页面

methods: {
			refreshRequest() {
				// 这里面可以调用刷新该页面的方法
				// () 
			},
			// getData().then(res =>{
			 //    = 
			// })
		}

大致就是这些了