小程序onload,什么时候重新执行?

wlm212
  • 46

我看文档说是,整个页面生命周期,只执行一次。

我这么理解的,就是这个页面只要没死,就执行一次。

死了以后,再回到这个页面,还是会执行onload。

那怎么知道他什么情况下是死了,什么情况是没死?

比如确认订单页面,我点返回,再点商品进来,还是会执行onload,

如果我在确认订单页面,点击收货信息,进入修改收货地址页面,再点击返回,就不会执行onload。

这是为啥呢?有什么区别呢?是因为使用了跳转方式导致的?

用a跳转方式,再进入就是,页面没死,不执行onload,
用b方式跳转,再进入就是,页面死了,需要再执行onload一次。

redirectTo,navigateTo,switchTab,是不是因为这几种方式,导致页面可能被卸载。

那点左上角<返回按钮,是到底是啥方式。有点晕。

回复
阅读 116
2 个回答

你的路由只要不被销毁就不会onload,redirectTo是将当前路由重定向,替换了当前的路由栈,这就是销毁了,navigateTo是跳转至下一路由,当前路由成了下一路由的上一页,所以你返回可以返回回去,这时候就不会执行onload,因为它没被销毁,其他同理

你把这个想成一个栈
var pages = []
有A,B两个页面
你当前在A页面,也就是pages = [A]
A -> B
pages = [A, B]
因为B本来不在pages里,所以B执行onload
在B页面点击<返回后,pages = [A],因为A一直都在pages里,所以不执行onload

你知道吗?

宣传栏