Skip to content

为什么需要onRoute函数?

Gcaufy edited this page Mar 7, 2017 · 1 revision

小程序生命周期函数有:

函数 说明
onLoad 页面加载事件
onShow 页面显示事件
onReady 页面初次渲染完成事件
onHide 页面隐藏事件
onUnload 页面卸载事件

那么问题来了,页面之间的跳转事件应该写在哪个方法里呢?比如有需求,需要在页面跳转后重置当前页面数据。写在onShow事件里?

写在onShow事件里的确可以,但是要考虑到一些特殊操作同样会触发onShow事件,比如 拉起分享后取消分享,拉起支付后取消支持,手机HOME键返回再进入等等。

如果不介意在做这个动作的时候多调一次onShow事件,那使用onShow肯定没有问题。

wepy中onRoute事件就是为了解决这个问题,只有在页面路由时才会触发(包括第一次进入页面)。加入onRoute后的生命周期事件调用时序为:

onLoad -> onShow -> onRoute -> onReady -> onUnload