小程序:小程序中的onLoad和onShow谁先执行

这篇具有很好参考价值的文章主要介绍了小程序:小程序中的onLoad和onShow谁先执行。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

我们来做一下测试:

测试一

测试一我们直接执行

async onLoad (options) {
    console.log('执行onLoad')
},
async onShow () {
    console.log('执行onShow')
}

小程序:小程序中的onLoad和onShow谁先执行
发现确实是先执行的 onLoad 然后才是 onShow

测试二

测试二我们试试在 onLoad 中执行异步函数后,看看 onLoad 和 onShow 的执行顺序

const asyncFun = (time) => {
  return new Promise((resolve, reject) => {
    setTimeout(() => {
      console.log('执行异步函数了')
      resolve()
    }, time)
  })
}

async onLoad (options) {
	await asyncFun(100)
    console.log('执行onLoad')
},
async onShow () {
    console.log('执行onShow')
}

这里就算把异步函数 asyncFun 的参数调为 0,依然是下面的结果
小程序:小程序中的onLoad和onShow谁先执行
我们再给测试二加点料,两个都执行异步函数,并且时间相同:

async onLoad (options) {
	await asyncFun(100)
    console.log('执行onLoad')
},
async onShow () {
	await asyncFun(100)
    console.log('执行onShow')
}

小程序:小程序中的onLoad和onShow谁先执行
再加点料

async onLoad (options) {
	await asyncFun(200)
    console.log('执行onLoad')
},
async onShow () {
	await asyncFun(100)
    console.log('执行onShow')
}

小程序:小程序中的onLoad和onShow谁先执行
说明虽然默认是先执行的 onLoad,但是如果有异步函数,那么就看哪个异步函数先执行完就先执行哪个。

测试三

如果 onLoad 中有个耗时比较长的同步函数,还是会等 onLoad 执行完再执行 onShow 吗?

const syncFun = (length) => {
  for (let i = 0; i < length; i++) {
    console.log('i:', i)
    if (i === length - 1) {
      console.log('循环结束')
    }
  }
  console.log('执行完成')
}

async onLoad (options) {
	syncFun(1000)
    console.log('执行onLoad')
},
async onShow () {
    console.log('执行onShow')
}

小程序:小程序中的onLoad和onShow谁先执行文章来源地址https://www.toymoban.com/news/detail-506141.html

总结

  • 一般情况下,onLoad 先执行
  • 有异步的情况下,谁执行的快谁先执行
  • 所以最好不要在 onLoad 和 onShow 里写一些有相关依赖的代码

到了这里,关于小程序:小程序中的onLoad和onShow谁先执行的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • onLoad与onShow的区别

    onLoad 页面加载时调用,可以获取参数,通过 options 。 onShow 页面显示时调用。 主要区别: 从二级页面返回该页面时, onLoad 不会再次加载,而 onshow 会重新加载。 还有从后台切换回来也会触发onshow,而不会触发onload 这点很重要: 1、如果加载列表页,二级页面对一级的列表页

    2024年02月11日
    浏览(27)
  • 微信小程序开发中,onLoad() 和onShow()的区别

    在微信小程序的开发过程中,经常用到很多生命周期函数,在这里介绍一下 , onLoad() 和 onShow() 的区别: onLoad() : 在页面加载的时候触发,只会 调用一次 ,在 onLoad() 函数中,可以通过 option 获取当前页面路径中的 参数 onShow() : 在页面显示时调用,也就是切换页面的时候,

    2024年02月16日
    浏览(24)
  • 1、其他页面返回tabBar页面不刷新(onLoad,onShow,onTabItemTap)

    原因:在onLoad里修改数据,但是onLoad 首次进入页面触发,只触发一次 解决方法:在onShow里修改数据,onShow每次打开页面都会调用一次 拓展:onTabItemTap()在 tabbar 切换时触发。

    2024年02月04日
    浏览(30)
  • vue/uniapp - 返回上一页并onLoad/onShow刷新数据列表接口

    在uni中,返回页面是不会触发 onLoad 方法的; 如果我们只想在特定情况下返回上一页才需要刷新数据,那么用 onShow 的话,那刷新就太频繁了; 这时候,可以用 $emit 和 $on 去解决。 比如说,从详情页(detail.vue) 回到 列表页(list.vue): 进入的页面 给大佬暴赞👍👍👍👍👍👍

    2024年02月04日
    浏览(40)
  • uni-app的页面的生命周期:onLoad、onShow、onReady

      onLoad:页面加载了,在onLoad中发送请求是比较合适的,即页面一加载就发送请求获取数据。 onShow:页面显示了,会触发多次,只要页面隐藏,然后再显示出来都会触发。这里会重复触发,如果你重复发送请求不合适。 onReady:页面初次渲染完成了,但是渲染完成了,你才发送请

    2024年02月11日
    浏览(43)
  • 在uniapp vue3 setup语法糖中调用onLoad、onShow等生命周期

    从 @dcloudio/uni-app 导出 可导出项:

    2024年02月16日
    浏览(34)
  • Vue - 实现类似小程序 onShow() 一样的生命周期钩子方法(监听页面的显示,只要页面显示就执行代码)

    我们都知道,在微信小程序和 uni-app 项目中,页面有一个 onShow() 生命周期,当页面显示时就会触发。 但在 Vue.js / Nuxt.js 项目中是没有这个钩子函数的, 本文将提供 最简单、高效 的解决方案, 另外兼容性亲测完美。 如下效果图所示,首页每次显示的时候都会触发(您看控制

    2024年02月11日
    浏览(34)
  • 微信小程序中的onLoad详解及简单实例

    onLoad是小程序中页面的生命周期函数之一,表示页面加载时会触发该函数,通常用于数据的初始化。 在小程序页面的js文件中,使用以下方式定义onLoad函数: 其中,options参数表示页面的参数,可以从页面跳转时传递的参数中获取。例如:  当页面加载时,可以利用onLoad函数

    2024年03月20日
    浏览(37)
  • uniapp-微信小程序,对子组件实现onShow效果

    背景:使用uni-app开发一个微信小程序,使用的vue子组件,发现在子组件里面不能使用onShow生命周期,但是可以在page里面可以调用,需要在使用uni.navigateBack()返回后,该组件能请求接口数据刷新 解决:父级组件中,在子组件上添加ref,在父级onShow中通过子组件ref调用方法 父组

    2024年02月11日
    浏览(34)
  • 安装包UI美化之路-通过nsNiuniuSkin来做Electron程序的打包、发布与升级

    nsNiuniuSkin从发布之初,因其简单、简洁、高效,受到了非常多公司的青睐,现在已经越来越多的公司采用我们的这套解决方案来制作安装包了! 从一个安装包UI插件,逐步演化成一套集美观、安全、简洁、自动化为一体的完整的解决方案,实属不易,感谢所有朋友的信任!

    2024年02月02日
    浏览(26)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包