uniapp微信小程序开发踩坑日记:onShow的应用场景及用法

onShow的应用场景

由于微信小程序是单页应用程序,所以用户在打开小程序后,只有第一次进入页面时会加载页面,之后再通过导航栏切换到相同的页面并不会导致页面重新加载

但是在某些场景下,我们希望每次用户一回到某个页面,就执行相应的函数,但因为导航栏切换页面并不会导致页面重新加载,所以页面中的代码不会被再次执行

如果大家和我一样使用vue3开发,可能会想到使用vue3的生命周期函数onMounted,但同样地,导航栏切换页面也不会导致dom元素重新渲染,所以onMounted并不会执行

这时我们就可以使用uniapp的生命周期函数onShow,onShow函数是每次页面显示的时候都会被触发

onShow的用法

uni-app 页面除支持 Vue 组件生命周期外还支持下方页面生命周期函数,当以组合式 API 使用时,在 Vue2 和 Vue3 中存在一定区别,请分别参考:Vue2 组合式 API 使用文档 和 Vue3 组合式 API 使用文档

如果你使用的是vue3的组合式API,可以参考以下代码

<script setup>
    import { onShow } from '@dcloudio/uni-app'

    onShow(()=>{
    console.log('哈哈!');
    })
<script>

一点小心得

这么一看onShow的使用场景和用法,是不是非常简单?但是这个问题卡了我几乎一整天

其实一开始解决这个问题,我是对AI不断地提问,因为觉得对AI,我可以针对我的需求进行提问,而且我确实很快地问出了解决方法

但AI给出的方法很多时候并不完善,我在用的时候就出现了报错,于是我拿着报错信息再次对AI提问,AI又给了我一套解决方案,接下来我就进入了一个循环:我不断地拿着报错信息对AI提问,AI不断地给我提出新的解决方案,我不断地尝试AI提供的解决方案,然后程序又不断地报错,我拿到报错信息后又拿去问AI……

每次看到AI打出的第一句话是:“很抱歉,我之前给出的解决方案有误” 我就很崩溃,恨不得打几句话骂它一顿

最后,我还是在微信官方文档上找到了解决方案,原来是我导入onShow的方式不对,正确的导入方式应该是:import { onShow } from '@dcloudio/uni-app',AI提供的导入方式一直是错的,但其实我也是看了几遍官方文档后才找到了这句话:“uni-app 页面除支持 Vue 组件生命周期外还支持下方页面生命周期函数,当以组合式 API 使用时,在 Vue2 和 Vue3 中存在一定区别,请分别参考:Vue2 组合式 API 使用文档 和 Vue3 组合式 API 使用文档。” 点进第二个链接之后才找到正确的导入方式 

其实我平时挺讨厌看官方文档,因为总觉得官方文档的语言死板晦涩,而且很难找到我需要的,好不容易找到了,也不一定看得懂

但是今天,这件事情给我了我一个教训:AI不能全信,官方文档不能不看!

  • 11
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值