uniapp 本页自动检测下页是否有数据更新。更新则重新加载本页面的某个数据请求函数,不更新就不生效

前言

uniapp中部分页面的下一页有的数据变化联动着本页的数据,下一页更新数据,返回时本页数据也需要更新,要是用onShow 的话有点频繁刷新页面,每次返回都会重新加载本页面,重新请求数据,对用户来说体验感太差了,每次都刷新页面,所以本次来的就是解决这个问题

实现

我们用uni. e m i t 和 u n i . emit 和 uni. emit和uni.on 来实现

uni. e m i t 和 u n i . emit 和 uni. emit和uni.on是成对使用的,括号内容部分两个一样才能检测你用的哪一个

1.1 uni.$emit的使用方式

这里是你修改信息成功之后的逻辑,加到这里,

这里就是返回你返回上一页之后uni. o n 会检测有没有 u n i . on会检测有没有uni. on会检测有没有uni.emit,写在成功之后执行,当uni. o n 检测到有 u n i . on检测到有uni. on检测到有uni.emit,就会执行内部逻辑,重新请求我i们的数据

javascript 复制代码
if (res.data.code == 0) {
					uni.$emit('callreload');
					uni.showToast({
						title: '提交成功',
						icon: 'success'
					})
					setTimeout(() => {
						uni.navigateBack({
							delta: 1
						})
					}, 1000);
				} else {
					uni.showToast({
						title: res.data.msg,
						icon: 'none',
						duration: 1000
					})
				}

1.2 uni.$on的使用方式

我的reload函数就是请求数据的函数,首次加载reload函数,若是uni. o n 检测到有 u n i . on检测到 有 uni. on检测到有uni.emit,就会执行 uni. o n ,重新请求函数,没有则不执行, u n i . on,重新请求函数,没有则不执行,uni. on,重新请求函数,没有则不执行,uni.on是用在uni. e m i t 返回的上一个页面中使用, u n i . emit返回的上一个页面中使用,uni. emit返回的上一个页面中使用,uni.on和uni.$emit不是在一个页面中使用,是两个页面,使用的时候注意,

javascript 复制代码
onLoad() {
		this.reload();
		uni.$on('callreload', () => {
			this.reload();
		});
	},

我这里是配合滚动到底部自动自动加载下一页数据使用的,感兴趣的可以看我的这一篇文章

uniapp,小程序滚动到底部自动加载下一页

相关推荐
就叫飞六吧16 分钟前
TOML vs YAML:为什么 Cargo 选择 TOML?
linux·运维·服务器
MiNG MENS16 分钟前
nginx 代理 redis
运维·redis·nginx
IMPYLH30 分钟前
Linux 的 test 命令
linux·运维·服务器·chrome·bash
xrui581 小时前
2026实战:深度解析 Gemini 3.1 镜像站函数调用在自动化运维工单中的应用
linux·服务器·网络
HackTwoHub1 小时前
Linux 内核史诗级本地提权 全网深度复现、原理完整分析( CVE-2026-31431)
linux·运维·安全·web安全·网络安全·代码审计·安全架构
她说彩礼65万2 小时前
C语言 文件
linux·服务器·c语言
txg6662 小时前
自动驾驶领域热点简报(2026-04-26 ~ 2026-05-03)
linux·人工智能·自动驾驶
二哈赛车手2 小时前
新人笔记---ES和kibana启动问题以及一些常用的linux的错误排查方法,以及ES,数据库泄密解决方案[超详细]
java·linux·数据库·spring boot·笔记·elasticsearch
嵌入式×边缘AI:打怪升级日志2 小时前
嵌入式Linux开发核心自测题(全系列精华浓缩)
java·linux·运维
嵌入式×边缘AI:打怪升级日志2 小时前
TinaSDK Linux Kernel 基本使用(全志T113开发板)
linux·运维·服务器