问答

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

作者:admin 2021-04-09 我要评论

我看文档说是,整个页面生命周期,只执行一次。 我这么理解的,就是这个页面只要没死,就执行一次。 死了以后,再回到这个页面,还是会执行onload。 那怎么知道...

在说正事之前,我要推荐一个福利:你还在原价购买阿里云、腾讯云、华为云服务器吗?那太亏啦!来这里,新购、升级、续费都打折,能够为您省60%的钱呢!2核4G企业级云服务器低至69元/年,点击进去看看吧>>>)

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

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

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

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

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

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

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

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

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

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

###

你的路由只要不被销毁就不会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

版权声明:本文转载自网络,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。本站转载出于传播更多优秀技术知识之目的,如有侵权请联系QQ/微信:153890879删除

相关文章
  • nginx响应速度很慢

    nginx响应速度很慢

  • 点击选中的多选框,会在已选那一栏显示

    点击选中的多选框,会在已选那一栏显示

  • PHP 多态的理解

    PHP 多态的理解

  • 关于C语言中static的问题

    关于C语言中static的问题

腾讯云代理商
海外云服务器