关于微信小程序组件的pageLifetimes和lifetimes

701 阅读2分钟

定义:

大家如果封装过微信小程序的自定义组件的话,对这两个名称多少已经有点了解,在官方文档的定义上可以概括为:

  • pageLifetimes:组件所在页面的生命周期事件可以在这个字段中定义
  • lifetimes:组件的生命周期事件可以在这个字段中定义。

我这里在用通俗的方式描述一下:也就是你在封装一个自定义组件的时候,如果你想在这个组件里,监听这个组件所在页面的生命周期函数的话,就可以用pageLifetimes字段,如果你想监听这个组件自身的生命周期函数的话,可以用lifetimes字段。具体用法参考官方文档

image.png

image.png

其实文档已经说的足够明白了,但有时候你的理解可能和文档的描述是不一致的(别问我是怎么知道的。。。。。。)。

pageLifetimesshow事件和page页面的onShow事件的对比:

page页面的onShow事件在第一次进入这个页面的时候是会被调用的,而在组件pageLifetimes里的生命周期show事件,在第一次进入这个组件所在的页面的时候show事件是不会被调用的,如果你想在第一次进入组件所在的页面,初始化组件里的一些数据的的话,可以使用lifetimes里的attached方法

pageLifetimesshow事件的使用场景

那么pageLifetimes里的生命周期show事件什么时候用到呢?我这里举例使用一个场景:现在有个页面,你第一次进入(未登录的情况下),点击页面的所有按钮,这时候会跳转到登录界面,登录完成后,会返回到这个页面。此时这个页面里有个组件,需要在登录返回的时候做一些数据操作,这时候就可以在pageLifetimes的生命周期show事件里操作。

总结

上面说的这些是我在开发中遇到的一些容易出错的地方,有时候你会发现你封装的组件的数据并不是你实际场景里想要的,会出现莫名其妙的数据问题,这时候你就要想到组件里的pageLifetimeslifetimes字段了。