小程序的每个页面都有一些生命周期,每个生命周期由分别有着不同的生命周期钩子函数。而我们的业务逻辑写在这些生命周期的钩子函数中,那么弄清楚那种情形下会触发那些生命周期钩子函数就非常重要了
先上一段代码
Page({ data: { banner: [ "../../assets/img/banner.jpg", "../../assets/img/banner2.jpg", "../../assets/img/banner3.jpg", ], list:[1,2,3,4,5,6,7], }, //页面加载 onLoad: function () { console.log("触发首页加载周期") }, //页面渲染 onReady() { console.log("触发首页页面渲染周期") }, //页面显示 onShow() { console.log("触发首页页面显示周期") // wx.navigateTo({ // url: "../test/test", // }) }, //页面隐藏 onHide() { console.log("触发首页页面隐藏周期"); }, login(){ } })
上面这一坨就是页面常用的生命周期钩子函数,还有一些没有写出来,想要了解的可以去微信的官方文档看看:https://developers.weixin.qq.com/miniprogram/dev/api/route/wx.redirectTo.html
第一种情况
当页面首次加载的时候触发的生命周期有
离开当前页面的时候
第二种情况
当其他页面使用navigateTo 回到当前页面时
使用
wx.redirectTo 回到当前页面效果与wx.navigateTo相同
wx.reLunch 回到当前页面效果与上相同,但是会触发 发生跳转的页面的 页面卸载钩子函数
第三种情况
当其他页面使用navigateBack回到当前页面时
就只会触发 onShow()生命周期函数 switchTab与其相同 但是switchTab只能条tabbar页面
所以每次进入页面都要触发的业务逻辑个人推荐的写法是使用navigateTo而非navigateBack