使用 uni-app 开发的微信小程序中,如何在从 B 页面回来时,重新拉取数据?

👨🏻‍💻 热爱摄影的程序员

👨🏻‍🎨 喜欢编码的设计师

🧕🏻 擅长设计的剪辑师

🧑🏻‍🏫 一位高冷无情的全栈工程师

欢迎分享 / 收藏 / 赞 / 在看!

【问题】

使用 uni-app 开发的微信小程序中,如何在从 B 页面回来时,重新拉取数据?

【解决】

可以使用监听事件的方式解决返回页面重新获取数据的需求。

官网-$emit

以登录状态失效后,跳转登录相关功能为例:

当点击 A 页面时发现登录状态失效,此时跳转到 B 页面去登录,登录成功后定义一个全局事件 loginSuccess,并返回上一页:

javascript 复制代码
loginSuccess() {
  this.$modal.hideLoading()
  this.$modal.msgSuccess('登录成功')
  setTimeout(() => {
    uni.$emit('loginSuccess'); // 发送事件
    this.$tab.navigateBack() // 返回上一页
  }, 800)
}

在 A 页面中,onShow 钩子中监听登录成功事件,执行 reloadPageData 方法重新获取页面数据。

javascript 复制代码
onShow() {
  // 页面显示,监听登录成功事件
  uni.$on('loginSuccess', this.reloadPageData);
}

需要注意的是,在页面卸载时,需要移除监听事件。

javascript 复制代码
onUnload() {
  // 页面卸载时,移除监听事件
  uni.$off('loginSuccess', this.reloadPageData);
}

或者使用 uni.$once 方法,只监听一次事件。

javascript 复制代码
onShow() {
  // 页面显示,监听登录成功事件
  uni.$once('loginSuccess', this.reloadPageData);
}
相关推荐
2501_915909067 小时前
Charles 抓不到包怎么办?iOS 调试过程中如何判断请求路径
android·ios·小程序·https·uni-app·iphone·webview
2501_916007477 小时前
iOS和iPadOS文件管理系统全面解析与使用指南
android·ios·小程序·https·uni-app·iphone·webview
卜锦元8 小时前
EchoChat搭建自己的音视频会议系统01-准备工作
c++·golang·uni-app·node.js·音视频
敲敲了个代码11 小时前
让 Vant 弹出层适配 Uniapp Webview 返回键
前端·javascript·vue.js·学习·面试·uni-app
2501_9159214312 小时前
iOS App 开发阶段性能优化,观察 CPU、内存和日志变化
android·ios·性能优化·小程序·uni-app·iphone·webview
木子啊12 小时前
UNIAPP国内房贷计算器
uni-app·房贷·房贷计算器·房贷利率·公积金贷款·商业贷款
qq_124987075313 小时前
基于微信小程序的垃圾分类信息系统(源码+论文+部署+安装)
java·前端·spring boot·后端·微信小程序·小程序·计算机毕业设计
qq_124987075313 小时前
基于微信小程序的照片社交平台(源码+论文+部署+安装)
java·大数据·微信小程序·小程序·毕业设计·计算机毕业设计
游戏开发爱好者813 小时前
在 iOS 开发、测试与上架过程中 如何做证书管理
android·ios·小程序·https·uni-app·iphone·webview
计算机毕设指导613 小时前
基于微信小程序的健康管理系统【源码文末联系】
java·spring boot·微信小程序·小程序·tomcat·maven·intellij-idea