小程序赖加载刷新数据页面数据堆叠问题debug

这篇具有很好参考价值的文章主要介绍了小程序赖加载刷新数据页面数据堆叠问题debug。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

 

目录

项目所需

原生写赖加载存在的bug

解决问题思路及代码实现

思路:

代码实现:

列表.wxml

 列表.js

Wenjain_shanchu.js

Wenjain_shanchu.json

Wenjain_shanchu.wxml

shouye.js

 ⭐️ 好书推荐

【内容简介】 


项目所需

某高校大一新生入学,学校的综合服务站小程序上传文件的列表支撑前端页面支撑不了成千上万条的渲染。

所以,决定将直接列表加载换成赖加载。

原生写赖加载存在的bug

使用原生来创建一个赖加载是不错的选择,但是遇到了一个问题,就是小程序的onshow和onload生命周期钩子,无论使用哪一个钩子都会存在数据刷新之后数据堆叠的问题。

解决问题思路及代码实现

思路:

我们使用懒加载时,一般会套用者数据的增删改查一起使用,比如:使用赖加载列数据之后,想实现每一条数据的删除之后刷新数据,这个时候就不能够使用正常的onshow或者onload生命钩子实现。

我们这时候要使用列表页面点击删除时跳到二级页面实现删除数据的同时,在二级页面使用getCurrentPages()函数获取到小程序页面栈,然后通过pages.length来获取上一个页面的实力对象,在通过beforePage方法修改上一个页面的数据,并结合着beforePage方法调用上一个页面的自定义方法,在使用正常的wx.navigateBack返回上一个父级页面并携带一个自定义的参数,这时候需要在父级页面上创建对话框事件,实现返回到此父级页面的上一个页面,然后再从此父级页面的上一个页面的onload生命钩子函数中做判断,如果孙页面的参数存在且判断正确,则自动执行跳到列表页面,从而解决赖加载结合数据的增删改查之后的数据在列表页面的堆叠问题!

代码实现:

列表.wxml

赖加载时候的数据删除

这里的item里面的_id是js中赖加载完成的数据列表

<navigator style="height: 50rpx;" url="../Wenjain_shanchu/Wenjain_shanchu?Wenjain_shanchu_id={{item._id}}" slot="right">删除</navigator>

 列表.js

  onShow() {
    if (this.data.txt == 1) {
      wx.showModal({
        title: '删除成功!',
        content: '是否自动重新进入此页面完成刷新!',
        success(res) {
          if (res.confirm) {
            console.log('用户点击确定')
            wx.reLaunch({
              url: '../shouye/shouye?wenjian='+'yonghu',
            })
          } else if (res.cancel) {
            console.log('用户点击取消')
          }
        }
      })
    }
  },

Wenjain_shanchu.js

  Queding(){
    let that = this
    wx.cloud.database().collection('wenjian').doc(that.options.Wenjain_shanchu_id).remove({
        success(res){
            console.log(res)
            wx.showToast({
              title: '删除成功!',
            })
            let pages = getCurrentPages();   //获取小程序页面栈
            let beforePage = pages[pages.length -2];  //获取上个页面的实例对象
            beforePage.setData({      //直接修改上个页面的数据(可通过这种方式直接传递参数)
              txt:1
            })
            beforePage.go_update();   //触发上个页面自定义的go_update方法
            wx.navigateBack({         //返回上一页  
              delta:1
            })
        }
    })
  },

  onLoad(options) {
    console.log(options.Wenjain_shanchu_id)
    Dialog.confirm({
      title: "再次确定您是否要删除",
      message:'\n\n',
      customStyle:'width:500rpx;border-radius: 20rpx;padding:20px;display: flex;flex-direction: column;font-size:20px',
      // theme:'round-button',
     }).then(() => {
      // on close
     });
    
  },

Wenjain_shanchu.json

{
  "usingComponents": {
    "van-dialog": "@vant/weapp/dialog/index"
  }
}

Wenjain_shanchu.wxml

<van-dialog bind:confirm="Queding"bind:cancel="Quxiao" id="van-dialog" />

shouye.js

  onLoad(options) {
    console.log(options,'111')
    if(options.wenjian == 'yonghu'){
      wx.navigateTo({
        url: '../My_wenjain/My_wenjain',
      })
    }
  },

 ⭐️ 好书推荐

小程序赖加载刷新数据页面数据堆叠问题debug,微信小程序,小程序

清华社【秋日阅读企划】领券立享优惠

IT好书 5折叠加10元 无门槛优惠券:https://u.jd.com/Yqsd9wj

活动时间:9月4日-9月17日,先到先得,快快来抢

小程序赖加载刷新数据页面数据堆叠问题debug,微信小程序,小程序

【内容简介】 

 《Vue.js从入门到精通》从初学者角度出发,通过通俗易懂的语言、丰富多彩的实例,详细介绍了使用Vue.js进行程序开发需要掌握的各方面技术。全书分为4篇,共19章,内容包括初识Vue.js、ECMAScript 6语法介绍、Vue实例与数据绑定、条件判断指令、v-for指令、计算属性和监听属性、元素样式绑定、事件处理、表单元素绑定、自定义指令、组件、组合API、过渡和动画效果、渲染函数、使用Vue Router实现路由、使用axios实现Ajax请求、Vue CLI、状态管理,以及51购商城项目实战。书中的大多数知识点都结合具体实例进行介绍,涉及的程序代码给出了详细的注释,使读者可轻松领会Vue.js程序开发的精髓,快速提高开发技能。

📚 京东购买链接:https://item.jd.com/14055952.html文章来源地址https://www.toymoban.com/news/detail-712497.html

到了这里,关于小程序赖加载刷新数据页面数据堆叠问题debug的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

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

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

相关文章

  • 微信小程序--操作微信自带的返回按钮使上个页面刷新列表或刷新数据

    首先要了解什么是 页面栈 ------------ 框架以栈的形式维护了当前的所有页面。 当发生路由切换的时候,页面栈的表现如下: 路由方式 页面栈表现 初始化 新页面入栈 打开新页面 新页面入栈 页面重定向 当前页面出栈,新页面入栈 页面返回 页面不断出栈,直到目标返回页

    2024年02月13日
    浏览(37)
  • 微信小程序学习实录2(下拉刷新、下拉加载更多、小程序事件、PHP后端代码、刷新无数据解决方案)

    lazyCodeLoading基础库 2.11.1 及以上版本支持,2.11.1 以下兼容但无优化效果 通常情况下,在小程序启动期间,所有页面及自定义组件的代码都会进行注入,当前页面没有使用到的自定义组件和页面在注入后其实并没有被使用。自基础库版本 2.11.1 起,小程序支持有选择地注入必要

    2024年02月05日
    浏览(38)
  • Vue强制刷新页面重新加载数据方法

    业务场景 在管理后台执行完增删改查的操作之后,需要重新加载页面刷新数据以便页面数据的更新 实现原理 就是通过控制router-view 的显示与隐藏,来重渲染路由区域,重而达到页面刷新的效果,show - flase - show 具体代码 1.首先在我们的根组件APP.vue里面,写入刷新方法,路由初

    2024年02月11日
    浏览(33)
  • 前端页面点击刷新-触发vue生命周期加载最新数据

    需求背景:layout布局,页面头部通过定时器获取后端消息的伪消息通知功能,在点击消息时获取所有消息总数并且刷新页面,以便触发vue的生命周期重新获取所有消息,消息展示在content中。  要触发页面刷新,可以使用vue路由的router.push方法,添加一个动态的query参数,可以

    2024年02月21日
    浏览(38)
  • 【微信小程序插件】下拉刷新、下拉加载

    今天在优化小程序的列表时候,想要把原生的 scroll-view 组件替换成一个下拉刷新的组件,然后就找了一下,果然有大神已经封装好。coolui-scroller 就是这样满足需求的一款插件,但是微信官网给出的描述以及安装引入的方式,会造成依赖安装失败,报错: 构建npm提示错误,未

    2024年02月08日
    浏览(70)
  • 微信小程序如何刷新当前页面

    微信小程序是一种快速发展的移动应用程序开发平台,它提供了许多功能和特性,使开发者能够轻松创建功能丰富的小程序。在开发小程序时,有时我们需要刷新当前页面来更新数据或重新加载页面内容。本文将解释如何在微信小程序中刷新当前页面的代码。 微信小程序的流

    2024年02月07日
    浏览(47)
  • 微信小程序-----刷新页面3种方式

    微信小程序要实现页面刷新,简单的说就是在不同的地方重新执行 onLoad 周期函数。 需要注意在刷新时是否要初始化变量。因为小程序都是异步操作,所以很多时候,可能会造成服务器相应慢的问题,导致页面显示的时候会有延迟、造成闪烁的情况。 1.用 onLoad 周期方法重新

    2024年02月15日
    浏览(35)
  • 【微信小程序】-- 页面事件 - 下拉刷新(二十五)

    💌 所属专栏:【微信小程序开发教程】 😀 作  者:我是夜阑的狗🐶 🚀 个人简介:一个正在努力学技术的CV工程师,专注基础和实战分享 ,欢迎咨询! 💖 欢迎大家:这里是CSDN,我总结知识的地方,喜欢的话请三连,有问题请私信 😘 😘 😘   大家好,又见面了,

    2024年02月02日
    浏览(39)
  • uniapp小程序如何通过虚拟列表配合节流,完成上拉刷新下拉加载,避免页面卡顿,提升性能呢?

    本文将介绍uniapp小程序中如何使用虚拟列表和节流两种技术实现上拉刷新下拉加载功能,同时避免因渲染大量数据导致的页面卡顿问题。 一、虚拟列表 在uniapp小程序开发中,当我们需要渲染大量列表数据时,很容易出现页面卡顿现象。这时候,我们可以使用虚拟列表技术来

    2024年02月11日
    浏览(33)
  • 微信小程序——页面事件,.启用下拉刷新监听页面的下拉刷新事件,上拉触底事件,停止下拉刷新的效果

    下拉刷新是移动端的专有名词,指的是通过手指在屏幕上的下拉滑动操作,从而重新加载页面数据的行为。 启用下拉刷新有两种方式: a.全局开启下拉刷新 在 app.json 的window 节点中,将 enablePullDownRefresh 设置为 true. b.局部开启下拉刷新 在页面的.json 配置文件中,将 enablePull

    2024年01月25日
    浏览(43)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包