微信小程序--判断返回页面是否从其他页面返回,判断是否需要刷新请求

本文详细解析微信小程序中页面的生命周期,重点介绍如何通过onShow和onHide事件判断页面是重新打开还是从其他页面返回,从而实现数据的智能刷新。

判断当前页面是重新打开,还是从其他页面返回

有时候在其它页面进行操作(包含对数据的增删改查等)后,回到主页,由于数据改变,可能需要进行数据的重新请求,以确保数据的准确性和实时性。
这时候就需要了解一下微信小程序的页面的生命周期的相关知识,知道基本的页面显示的基本过程。

页面在初次加载的时候,微信客户端就会给Page实例派发onLoad事件,Page构造器参数所定义的onLoad方法会被调用,onLoad在页面没被销毁之前只会触发1次。
页面显示之后,Page构造器参数所定义的onShow方法会被调用,一般从别的页面返回到当前页面时,当前页的onShow方法都会被调用。
在页面初次渲染完成时,Page构造器参数所定义的onReady方法会被调用,onReady在页面没被销毁前只会触发1次,onReady触发时,表示页面已经准备妥当,在逻辑层就可以和视图层进行交互了。
以上三个事件触发的时机是onLoad早于 onShow,onShow早于onReady。
页面不可见时,Page构造器参数所定义的onHide方法会被调用,这种情况会在使用wx.navigateTo切换到其他页面、底部tab切换时触发。
当前页面使用wx.redirectTo或wx.navigateBack返回到其他页时,当前页面会被微信客户端销毁回收,此时Page构造器参数所定义的onUnload方法会被调用。

可以通过设置一个数据标识(pageFresh,初始值为false)的操作,用户通过主页点击进入其他页面,(wx.navigateTo跳转),则主页隐藏(onHide事件被调用,pageFresh赋值为true),当用户回退到主页时,调用onShow,判断pageFresh的值,再决定是否刷新请求。

链接: 微信小程序官方文档–页面的相关知识.

Page({

  /**
   * 页面的初始数据
   */
  data: {
    // 回退刷新的标识
    pageFresh: false

  },

  /**
   * 生命周期函数--监听页面加载
   */
  onLoad: function (options) {

  },

    /**
     * 生命周期函数--监听页面初次渲染完成
     */
    onReady: function () {

    },

    /**
     * 生命周期函数--监听页面显示
     */
    onShow: function () {
      // 判断是否是回退到首页,是回退的话,再重新请求接口,更新数据
      let _ = this
      if (_.data.pageFresh) {
        //所需刷新数据的请求
      }
    },

    /**
     * 生命周期函数--监听页面隐藏
     */
    onHide: function () {
      let _ = this
      _.data.pageFresh = true
    },

    /**
     * 生命周期函数--监听页面卸载
     */
    onUnload: function () {

    },

  })

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值