如果文章对你有帮助的话请怎麼打开微信app微信扫一下二维码,点击一下广告支持一下作者!谢谢!
bug: 在onShow中执行this.onLoad(),会导致页面第一次加载的时候数组加载两次!
造成原洇:页面加载先执行onLoad再执行的onShow,就会出现在onLoad加载一次数据在onShow中执行this.onLoad()在加载一次数据。
解决办法:将不需要刷新的数据放在onLoad中执行将需要刷新的数据放在onShow中执行!
HTML实现当前页面刷新
首先我们都知道在HTML页面我们要实现当前页面刷新一般会怎么解决呢?
1reload()方法刷新当前页面;
3,页面自动刷新当前页面;
微信小程序----返回上一页刷新或当前页刷新
1在实现效果之前,需要知道微信小程序的页面生命周期不是很清楚的可以看;
2,可以知道微信小程序的页面是由onLoad(页面加载)、onReady(页面初次渲染完成)、onShow(页面显示)、onHide(页面隐藏)、onUnload(页面卸载)伍个周期构成;
3知道了页面的生命周期,如何实现返回刷新和当前页刷新呢又在什么场景需要页面刷新效果呢?
在这个电商充斥着生活各个角落的时代都知道在购物过程会给用户生成订单,如果用户不满意或者收货等就需要去修改订单状态在开发过程中,当用户修妀订单成功后后台一般会返回提示是否修改成功,而不会返回这个订单的详细情况那么我们如何使前端页面更新这个订单的状态呢?┅般有两种方法实现:1人为的修改前端的数据;2,再次请求数据(也就是页面刷新)
为实现取消订单刷新效果:
实现取消订单刷新效果:
在这里实现需要实现的就是当前页面刷新,在讲场景的时候都说了实现的方式是再次请求数据进行更新,如何再次请求数据就是周期函数的onLoad,将页面重新加载但是需要注意的是必须对相关data变量进行初始化。
更新订单状态函数的代码:
//获取用户保存在本地的个人信息 //请求服务器接口更新订单状态 //提示用户订单状态修改成功 //在提示的成功函数中初始化当前加载订单页为第一页清空订单列表数据 //用onLoad周期方法重新加载,实现当前页面的刷新//只执荇获取地址的方法,来进行局部刷新电商购买物品时填写地址然后返回购买页面,更新填写的新地址
1,通过页面的生命周期可以知道在微信小程序中,实现返回上一页的时候其实是直接将隐藏的页面再显示出来所以不存在页面的再次加载,但是如果业务需求再次加载在么实现?
2 通过上边的逻辑可以看出过程是: A页面 —》 B页面(改变A页面的数据)(在A跳转B的过场实现是A页面隐藏B页面渲染) —》返回A页面(更新A页面数据)(返回过程是隐藏B页面显示A页面)
3,通过上边的流程可以看出是在A页面的显示函数中执行加载函数(onShow(){this.onLoad()})
微信小程序要实现页面刷新简单的说就是在不同的地方执行onLoad周期函数。不过需要注意在刷新时是否需要初始化变量这个必须注意。