uni-app 最新版本HBuilderX中 App.vue 的 onshow() 方法不会在每个页面中触发 只会在第一次进入项目时触发

uni-app 最新版本HBuilderX中 App.vue 的 onshow() 方法不会在每个页面中触发 只会在第一次进入项目时触发

开发环境 版本号 项目创建方式
Windows 20H2 HbuilderX

示例代码:

app.vue 页面
onShow: function(e) {
this.isShowHeaderMixins()
},
methods:{
isShowHeaderMixins(){
//如果在微信小程序或者客户端内时隐藏头部
if (this.globalData.inMini || this.globalData.inApp) {
let appPage = document.querySelector(‘uni-app’);
appPage.className += ’ inapp’
// inapp 是class 在样式中写的隐藏 display:none;
}
},
}


更多关于uni-app 最新版本HBuilderX中 App.vue 的 onshow() 方法不会在每个页面中触发 只会在第一次进入项目时触发的实战教程也可以访问 https://www.itying.com/category-93-b0.html

1 回复

更多关于uni-app 最新版本HBuilderX中 App.vue 的 onshow() 方法不会在每个页面中触发 只会在第一次进入项目时触发的实战教程也可以访问 https://www.itying.com/category-93-b0.html


在 uni-app 中,App.vueonShow 生命周期确实只在应用首次启动或从后台切换到前台时触发,而不是在每个页面切换时触发。这是框架的预期行为。

你的代码逻辑更适合放在页面级组件的 onShow 中,或者使用全局监听方案:

  1. 页面级监听:在每个页面的 onShow 中调用 isShowHeaderMixins 方法
  2. 全局事件总线:通过 uni.$onuni.$emit 实现跨页面通信
  3. Vuex 状态管理:结合 watch 监听全局状态变化

对于你的隐藏头部需求,建议采用条件编译 + 页面级监听的方式:

// 在页面中
onShow() {
  this.$scope.isShowHeaderMixins()
}
回到顶部