小程序onload,什么时候重新执行?
我看文档说是,整个页面生命周期,只执行一次。
我这么理解的,就是这个页面只要没死,就执行一次。
死了以后,再回到这个页面,还是会执行onload。
那怎么知道他什么情况下是死了,什么情况是没死?
比如确认订单页面,我点返回,再点商品进来,还是会执行onload,
如果我在确认订单页面,点击收货信息,进入修改收货地址页面,再点击返回,就不会执行onload。
这是为啥呢?有什么区别呢?是因为使用了跳转方式导致的?
用a跳转方式,再进入就是,页面没死,不执行onload,
用b方式跳转,再进入就是,页面死了,需要再执行onload一次。
redirectTo,navigateTo,switchTab,是不是因为这几种方式,导致页面可能被卸载。
那点左上角<返回按钮,是到底是啥方式。有点晕。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
你把这个想成一个栈
var pages = []
有A,B两个页面
你当前在A页面,也就是pages = [A]
A -> B
pages = [A, B]
因为B本来不在pages里,所以B执行onload
在B页面点击<返回后,pages = [A],因为A一直都在pages里,所以不执行onload
你的路由只要不被销毁就不会onload,redirectTo是将当前路由重定向,替换了当前的路由栈,这就是销毁了,navigateTo是跳转至下一路由,当前路由成了下一路由的上一页,所以你返回可以返回回去,这时候就不会执行onload,因为它没被销毁,其他同理