pageLifetimes.js 1.0 KB

123456789101112131415161718192021222324252627282930313233343536373839
  1. /**
  2. * 组件pageLifetimes处理,需在页面生命周期里调用
  3. * @param {Object} node
  4. * @param {Object} lifeName
  5. */
  6. function handlePageLifetime(node, lifeName) {
  7. node.$children.map(child => {
  8. if (typeof child[lifeName] == 'function') child[lifeName]()
  9. handlePageLifetime(child, lifeName)
  10. })
  11. }
  12. export const pageLifetimes = {
  13. onLoad() {
  14. // uni.onWindowResize(CALLBACK) 监听窗口尺寸变化事件
  15. // 平台差异说明
  16. // App H5 微信小程序 支付宝小程序 百度小程序 抖音小程序 飞书小程序 QQ小程序
  17. // √ √ √ x x x √ √
  18. // #ifdef H5 || MP-LARK || MP-QQ
  19. uni.onWindowResize((res) => {
  20. handlePageLifetime(this, "handlePageResize")
  21. })
  22. // #endif
  23. },
  24. onShow() {
  25. handlePageLifetime(this, "handlePageShow")
  26. },
  27. onHide() {
  28. handlePageLifetime(this, "handlePageHide")
  29. },
  30. onResize() {
  31. //onResize 监听窗口尺寸变化 App、微信小程序、快手小程序
  32. // #ifdef APP || MP-WEIXIN || MP-KUAISHOU
  33. handlePageLifetime(this, "handlePageResize")
  34. // #endif
  35. }
  36. };