当前位置: 首页 > news >正文

网站开发阶段wordpress图片分页浏览器

网站开发阶段,wordpress图片分页浏览器,网页设计实训内容,网站排名如何提升目录 前言1. 变量(不生效)2. 延迟(生效) 前言 🤟 找工作,来万码优才:👉 #小程序://万码优才/r6rqmzDaXpYkJZF 在 Uniapp 中,使用 onShow() 钩子来监听页面显示&#xff0…

目录

  • 前言
  • 1. 变量(不生效)
  • 2. 延迟(生效)

前言

🤟 找工作,来万码优才:👉 #小程序://万码优才/r6rqmzDaXpYkJZF

在 Uniapp 中,使用 onShow() 钩子来监听页面显示,从而在页面返回时刷新数据

例如:

onShow() {this.getLastSubmission(); // 重新请求数据
}

但这样会导致 初次进入页面 时 onShow() 也会执行一次 getLastSubmission(),而 onLoad() 也会调用它,导致 多次请求,带来性能问题和不必要的 API 调用

初次进入时 只调用一次 getLastSubmission(),返回页面时也只会调用 getLastSubmission() 以刷新数据
避免 onShow 和 onLoad 同时触发 getLastSubmission()

在 Uniapp 的页面生命周期中:

  • onLoad() 仅在页面首次创建时调用一次。
  • onShow() 每次页面 显示 时都会触发,包括:
    首次进入页面
    从其他页面返回

如果 onLoad() 和 onShow() 都调用 getLastSubmission(),那么:
初次进入:onLoad() 调用 getLastSubmission(),然后 onShow() 立即执行,导致 请求了两次
返回页面:onShow() 再次调用 getLastSubmission(),符合预期

需要解决 初次进入时调用两次的问题

在这里插入图片描述

1. 变量(不生效)

定义 firstLoad 变量,初次进入页面时设为 true。
onLoad() 执行 getLastSubmission(),但 onShow() 第一次不执行。
onShow() 仅在 firstLoad = false 后执行,避免初次进入时的重复调用

export default {data() {return {lastSubmission: null, firstLoad: true // 标记是否是第一次进入};},onLoad() {this.getLastSubmission(); // 初次加载时调用},onShow() {if (!this.firstLoad) {this.getLastSubmission(); // 仅在返回时调用} else {this.firstLoad = false; // 标记为已加载,后续 onShow 可执行}},methods: {async getLastSubmission() {try {const res = await getSelf();if (res?.data) {this.lastSubmission = res.data;} else {this.lastSubmission = null;}} catch (error) {this.lastSubmission = null;}}}
};

2. 延迟(生效)

核心思路:

在 onLoad() 先调用 getLastSubmission(),但不立即设置 loaded = true.通过 setTimeout() 稍微延迟 loaded,确保 onShow() 触发时不会误调用

export default {data() {return {lastSubmission: null, loaded: false // 标记是否已经加载过};},onLoad() {this.getLastSubmission().then(() => {setTimeout(() => {this.loaded = true; // 延迟标记 loaded,防止 onShow 立即执行}, 100); });},onShow() {if (this.loaded) {this.getLastSubmission(); }},methods: {async getLastSubmission() {try {const res = await getSelf();if (res?.data) {this.lastSubmission = res.data;} else {this.lastSubmission = null;}} catch (error) {this.lastSubmission = null;}}}
};

初次进入:
onLoad() 调用 getLastSubmission(),但 loaded 需要 100ms 才变 true。onShow() 立即触发,但 loaded = false,不会调用 getLastSubmission()

返回页面:
onShow() 触发 getLastSubmission(),刷新数据

http://www.yayakq.cn/news/200493/

相关文章:

  • 桥头镇做网站爱站工具包官网
  • 上海十大网站建在wordpress布置证书
  • 东莞网站制作支付通道wordpress编辑器下载
  • 门户网站建设统计表美食网站的设计与制作
  • 深圳网站建设公司麦外贸系统软件有哪些
  • 南昌网站建设培训产品包装设计100例
  • 网站频道与栏目的区别昆明官网seo技术
  • 杭州seo网站电子商城网站的设计与实现
  • 基础做网站的小结wordpress忘记密码修改数据库
  • 网站建设制作文字教程网站建设管理职责
  • 杭州建站模板制作3d建模可以自学吗
  • 动效网站淘宝客做网站多少钱
  • 湖南省郴州市天气预报网站改版对优化的影响
  • 国内做的比较好的网站深圳传媒公司
  • 私人软件开发公司有哪些网络优化器免费
  • 苏州行业网站建设费用网站制作软件工程师
  • 临沂购物网站建设北京朝阳区邮编
  • 西安网站漏洞网站页面设计软件
  • 个人做旅游网站怎样软件公司的税收优惠政策
  • 用腾讯云做网站昆明岭蓝科技
  • 安徽省建设工程造价管理总站网站广东省深圳建设信息网官网
  • 专门做视频的网站网站关键词排名查询工具
  • 网站建设制作报价方案济宁商城网站开发设计
  • 工业企业网站建设门户网站属于什么类型的模式
  • 设计团队网站网站设计 趋势
  • 淘宝客免费网站建设怎么租服务器做网站
  • 东莞代码网站建设织梦电影网站源码
  • 网站后台上传图片做难吗网站开发相关优惠条件
  • 上海网站建设公司案例做视频网站盈利多少
  • 娄底哪里学习网站建设和seo项目管理平台