欢迎您的光临,本博所发布之文章皆为作者亲测通过,如有错误,欢迎通过各种方式指正。

文摘  小程序下拉刷新和获取当前已加载页面的参数

小程序应用 本站 1106 0评论

1.下拉刷新


1、需要在.json文件里设置 "enablePullDownRefresh": true,用于开启页面下拉加载效果,可以当前页设置也可以全局设置;

{

    "enablePullDownRefresh": true //当前页

    "backgroundTextStyle": "dark" //顶部显示颜色为深色的三个点

}

or

 "window": {

    "enablePullDownRefresh": true //全局

    "backgroundTextStyle": "dark" //顶部显示颜色为白色的三个点

  }


2、注意在开发工具中模拟下拉动作时mac触摸板需要点击同时下拉才能模拟下拉动作,直接双指下拉不行;


3、js文件里,第一设置好后用onPullDownRefresh()函数监听下拉动作,注意页面可能已经有默认的onPullDownRefresh()函数存在,需要去重写;

  /**

  * 页面相关事件处理函数--监听用户下拉动作

  */

  onPullDownRefresh: function () {

 

  }


4、重置页面初始数据+调用onLoad()函数制作重新加载效果;

  onPullDownRefresh: function () {

    var that = this;

    that.setData({

      currentTab: 0 //当前页的一些初始数据,视业务需求而定

    })

    this.onLoad(); //重新加载onLoad()

  },


5、此时下拉刷新已经ok,但是还可以再优化下:在函数的开头设置wx.showNavigationBarLoading() 显示下拉刷新时页面标题。在函数结尾处设置wx.stopPullDownRefresh()停止下拉刷新效果,这样刷新完后就不会继续显示那三个点了。

  onPullDownRefresh: function () {

  wx.showNavigationBarLoading() //在标题栏中显示加载


    var that = this;

    that.setData({

      currentTab: 0 //当前页的一些初始数据,视业务需求而定

    })

    this.onLoad(); //重新加载onLoad()

  },


  wx.hideNavigationBarLoading() //完成停止加载

  wx.stopPullDownRefresh() //停止下拉刷新


完整例子:

  /**

   * 页面相关事件处理函数--监听用户下拉动作

   */

  onPullDownRefresh: function () {

    wx.showNavigationBarLoading() //在标题栏中显示加载

    //模拟加载

    this.onLoad(); //重新加载页面

    setTimeout(function () {

      // complete

      wx.hideNavigationBarLoading() //完成停止加载

      wx.stopPullDownRefresh() //停止下拉刷新

    }, 1500); //延迟1.5秒

  },

说明:

onPullDownRefresh 下拉刷新事件监听,具体看一下里面的代码,wx.showNavigationBarLoading() 与wx.hideNavigationBarLoading() 这两句话是用来控制小菊花的显示和隐藏,由于我们现在还没有讲解网络请求,所以我就模拟了一下网络加载,通过setTimeout方法,写一个时间延迟的方法,这个方法可以模拟网络加载所消耗的时间,还有就是当网络加载完成我们要停止下拉刷新wx.stopPullDownRefresh() 。


2.获取页面参数


1、获取url传递的参数:

url:"pages/home/home?type=2"


然后在js中的onLoad()函数中得到值:options.type就可以得到了,如下:

onLoad: function (options) {

    var type = options.type,

    console.log(type);

}

输出 2;


2、获取view页面传递的参数:

通过bindtap绑定detail事件,并且把要传递的参数(title、time),以 “data-” 的格式传递。

<view bindtap = "detail" data-title="{{item.title}}" data-time="{{item.time}}">

标题:{{item.title}}

时间:{{item.time}}

</view>

当前页面的js如下:e.currentTarget.dataset.XX  即获取视图中 “data-” 格式的数据。并在navigateTo中传入参数进行跳转。

detail:function(e){

    var title = e.currentTarget.dataset.title;

    var time = e.currentTarget.dataset.time;

}


3、获取当前已加载的url参数:

url:"pages/home/home?title=2"


//该函数获取所有栈内的路由

var pages = getCurrentPages();

//数组中最后一个即当前路由,options是参数

var options = pages.pop();

//模拟加载

var title  = options.data.title;


参考网址:

https://blog.csdn.net/qq_40081577/article/details/83001468


转载请注明: ITTXX.CN--分享互联网 » 小程序下拉刷新和获取当前已加载页面的参数

最后更新:2020-06-02 16:10:47

赞 (3) or 分享 ()
游客 发表我的评论   换个身份
取消评论

表情
(0)个小伙伴在吐槽