前因
今天碰到一个需求, 用户在注册后,第二次进入小程序,如果用户信息未完善将弹出弹窗,提示用户完善信息。
实现逻辑:
我在数据库中存储一个字段again, 在app.js中调用wx.login方法,获取用户信息,赋值again,然后在弹窗组件ready函数中获取appData中again变量进行判断。
然后发现弹窗不会弹窗。
生命周期
首先我们看看小程序生命周期有哪些:
App
- onLaunch
- onShow
- onHide
Page
- onLoad
- onShow
- onReady
- onHide
- onUnload
Component
- created
- attached
- ready
- moved
- detached
按照我们的想法,生命周期是这样的:
App(onLaunch) -> Page(onLoad) -> Component(ready)
但其实并不然,小程序的加载顺序是这样的:
首先执行 App.onLaunch -> App.onShow
其次执行 Component.created -> Component.attached
再执行 Page.onLoad -> Page.onShow
最后 执行 Component.ready -> Page.onReady
所以当页面中包含组件时,组件的生命周期(包括pageLifetimes)总是优先于页面,Behaviors生命周期优先于组件的生命周期。
最后我用setInterval去完成需求。
© 版权声明
文章版权归作者所有,未经允许请勿转载。
THE END