使用 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);
}
相关推荐
小时前端1 小时前
微信小程序选不了本地文件?用 web-view + H5 一招搞定
前端·微信小程序·uni-app
Mr_li18 小时前
给 Vue 开发者的 uni-app 快速指南
vue.js·uni-app
anyup21 小时前
🔥2026最推荐的跨平台方案:H5/小程序/App/鸿蒙,一套代码搞定
前端·uni-app·harmonyos
icebreaker21 小时前
Weapp-vite:原生模式之外,多一种 Vue SFC 选择
前端·vue.js·微信小程序
icebreaker21 小时前
重走 Vue 长征路 Weapp-vite:编译链路与 Wevu 运行时原理拆解
前端·vue.js·微信小程序
Mintopia2 天前
Vue3 项目如何迁移到 uni-app x:从纯 Web 到多端应用的系统指南
uni-app
Mintopia2 天前
uni-app x 发展前景技术分析:跨端统一的新阶段?
uni-app
不爱说话郭德纲3 天前
告别漫长的HbuilderX云打包排队!uni-app x 安卓本地打包保姆级教程(附白屏、包体积过大排坑指南)
android·前端·uni-app
大米饭消灭者4 天前
Taro是怎么实现一码多端的【底层原理】
微信小程序·taro
HashTang4 天前
【AI 编程实战】第 12 篇:从 0 到 1 的回顾 - 项目总结与 AI 协作心得
前端·uni-app·ai编程