页面生命周期和其自定义组件的attached执行条件,是我对它们的有很大误解?
发布于 6 年前 作者 wenjing 11185 次浏览 来自 官方Issues

一个普通页面的 onLoad 和 onShow

Page({
   // 页面的load和show,在页面被访问都会执行,其中load在页面未卸载前仅只执行一次
   onLoad(){
      console.log('load')
   },
 
   onShow(){
      consle.log('show')  
   }
})

该页面上的一个子定义组件

Component({
  //  组件挂载到页面上时执行一次
  //  当前页面未销毁,切到其他页面,再次切回时不执行
  attached(){ 
    console.log('component attached')
  },
  //  组件挂载到页面上时不会执行
  //  当前页面未销毁,再次切回当前页面时执行
  pageLifetimes:{
    show(){
      console.log('pageLifetimes show')
    }
  }
})

这上面的自定义组件的pageLifetimes 表现是不是很矛盾,是一个BUG?

测试 iPhone6sp,微信开发者工具

官方说明: pageLifetimes 子组件所在页面展示时会触发页面的命周期函数(show)

问: 从其他页面navigateTo到页面不属于页面展示吗?

关键问题: 可能有机子都会触发的场景,因为有机子过了我这个show的业务,然后… 挺郁闷的

这个社区富文本服了。。咱墙都不服,吐槽一下,社区活跃度很大原因可能如此吧, 所以我很多时候都找简书和掘金,都好难。

1 回复

组件加载上以后 才会触发后续的 onShow

回到顶部