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

发布于 2022-09-12 23:07:17 字数 414 浏览 13 评论 0

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

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

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

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

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

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

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

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

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

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

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

半透明的墙 2022-09-19 23:07:17

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

缱倦旧时光 2022-09-19 23:07:17

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

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文