使用 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);
}
相关推荐
栀秋6668 小时前
🌟从“抽卡式编程”到规范驱动: 深度解析「Vibe Coding」的三层跃迁
微信小程序·llm·vibecoding
Reece_9 小时前
微信小程序接入微信支付全流程指南(CloudBase / JSAPI / 真机可用)
微信·微信小程序·小程序
曼荼罗poisonous12 小时前
uniapp打包出现Manifest.json文件配置错误
uni-app
毕设源码-郭学长13 小时前
【开题答辩全过程】以 酒店预约微信小程序为例,包含答辩的问题和答案
微信小程序·小程序
项目題供诗15 小时前
微信小程序黑马优购(项目)(十三)
微信小程序·小程序
San3015 小时前
拒绝手写代码!用 Vibe Coding + SDD 范式“搓”一个微信计分小程序
微信小程序·trae·vibecoding
一点晖光16 小时前
uview 的u-tabs组件在微信小程序中会出现横向滚动条
微信小程序·安卓·横向滚动条
青青子衿越16 小时前
微信小程序垂直滚动效果显示通知消息(无限循环滚动)
微信小程序·小程序
烟囱土著16 小时前
捣鼓15天,我写了一个拼音发音点读小程序
学习·微信·微信小程序·小程序·拼音
2501_9159214317 小时前
如何将 iOS 应用的 IPA 文件安装到手机进行测试
android·ios·智能手机·小程序·uni-app·iphone·webview