【微信小程序】返回上一页刷新或当前页刷新
bug: 在onShow中执行this.onLoad(),会导致页面第一次加载的时候数组加载两次! 造成原因:页面加载先执行onLoad,再执行的onShow,就会出现在onLoad加载一次数据,在onShow中执行this.onLoad()在加载一次数据。 解决办法:将不需要刷新的数据放在onLoad中执行,将需要刷新的数据放在onShow中执行!
HTML实现当前页面刷新
首先我们都知道在HTML页面我们要实现当前页面刷新一般会怎么解决呢? 1,reload()方法刷新当前页面; 2,replace() 方法刷新当前页面; 3,页面自动刷新当前页面;
当前页面刷新
/**
* 刷新页面,页面设置点击刷新事件
*/
onRefresh: function() {
this.onLoad()
this.onReady()
}
注意:如果onLoad函数中有其他页面传过来的参数,建议放setData中,以免刷新的时候获取不到值的情况出现,一般不会遗失参数的!
返回上一页刷新
充分利用页面隐藏和显现的函数
/**
* 生命周期函数--监听页面显示
*/
onShow: function() {
// 当返回当前页面的时候,会自动调用这个参数,则实现自动返回刷新
this.onLoad()
this.onReady()
},
/**
* 生命周期函数--监听页面隐藏
*/
onHide: function() {
// 此函数是当前页面隐藏挑战到其他页面的隐含函数,可以设置全局变量之类
app.globalData.NetWorkType = true;
},
这两种刷新页面的方法各有利弊,如果不想单独在onShow中实现返回自动刷新,可以根据自定义的全局变量来管控。
/**
* 页面相关事件处理函数--监听用户下拉动作
*/
onPullDownRefresh: function() {
// 在此方法中实现数据加载的逻辑
}
//此方法需要在当前页面的json中设置如下参数,开启下拉刷新
{
"enablePullDownRefresh": true
}
此种方法刷新,并不会重新加载页面,或者刷新数据,需要手动调用onLoad函数或加载数据函数,重新动态载入数据。
供参考!
上一篇:
uniapp开发微信小程序-2.页面制作
下一篇:
iOS审核马甲包被拒4.3的解决方案
