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不能全信,官方文档不能不看!

相关推荐
excel1 小时前
ES6 中函数的双重调用方式:fn() 与 fn\...``
前端
可乐爱宅着1 小时前
全栈框架next.js入手指南
前端·next.js
你的人类朋友3 小时前
什么是API签名?
前端·后端·安全
会豪5 小时前
Electron-Vite (一)快速构建桌面应用
前端
中微子5 小时前
React 执行阶段与渲染机制详解(基于 React 18+ 官方文档)
前端
唐某人丶5 小时前
教你如何用 JS 实现 Agent 系统(2)—— 开发 ReAct 版本的“深度搜索”
前端·人工智能·aigc
中微子5 小时前
深入剖析 useState产生的 setState的完整执行流程
前端
遂心_5 小时前
JavaScript 函数参数传递机制:一道经典面试题解析
前端·javascript
小徐_23335 小时前
uni-app vue3 也能使用 Echarts?Wot Starter 是这样做的!
前端·uni-app·echarts
RoyLin5 小时前
TypeScript设计模式:适配器模式
前端·后端·node.js