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

onShow的应用场景

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

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

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

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

onShow的用法

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

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

javascript 复制代码
<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不能全信,官方文档不能不看!

相关推荐
MATLAB代码顾问1 小时前
5大智能算法优化标准测试函数对比(Python实现)
开发语言·python
云水一下1 小时前
从零开始!VMware安装Fedora Workstation 44桌面系统完整教程
前端
万粉变现经纪人2 小时前
如何解决 pip install llama-cpp-python 报错 未安装 CMake/Ninja 或 CPU 不支持 AVX 问题
开发语言·python·开源·aigc·pip·ai写作·llama
小码哥_常3 小时前
安卓黑科技:实现多平台商品详情页一键跳转APP
前端
清风明月一壶酒3 小时前
OpenClaw自动处理Word文档全流程
开发语言·c#·word
killerbasd3 小时前
还是迷茫 5.3
前端·react.js·前端框架
其实防守也摸鱼3 小时前
CTF密码学综合教学指南--第五章
开发语言·网络·笔记·python·安全·网络安全·密码学
不会敲代码13 小时前
TCP/IP 与前端性能:从数据包到首次渲染的底层逻辑
前端·tcp/ip
kyriewen4 小时前
奥特曼借GPT-5.5干杯,而你的Copilot正按Token收钱
前端·github·openai
小郑加油4 小时前
python学习Day12:pandas安装与实际运用
开发语言·python·学习