微信小程序 tab切换内容及分页

摘要:
在实际项目中,我们经常会遇到点击在不同内容之间切换的情况,尤其是在个人中心的订单页面中。我们还需要同时实现滚动分页的效果。“cur':''}”˃{{item}}这是内容{{item.content}}。tabNav{z索引:4;位置:固定;顶部:0;左侧:0;100%;高度:80rpx;行高度:80rpm;背景:#fff;显示:flex;pa填充:030rpx;边框底部:1pxsolid#f5f5f5;框大小:边框框;}tabNav˃view{text align:center;margin-right:50rpx;}。tabNav˃view:最后一个子项{margin-right:0;}。tabNav˃viewtext{padding:015rpx;height:75rpx;display:inline-block;}。选项卡导航。短文字{border-bottom:5rpxsolid#36ccf9;color:#000;}importcfgfrom'../../utils/config。js';importutilfrom'../../utils/util。js';varapp=getApp();页面({/***页面的初始数据*/data:{navTab:[“所有订单”,“待付款”,“要发货”,“需要接收”],currentTab:0,sendList:[],},select:{Page:1,size:6,isEnd:false},/***生命周期函数--侦听页面加载*/onLoad:function(选项){this.getData()},//*生命周期功能--侦听页面初始呈现完成*/onReady:function(){},/***与页面相关的事件处理函数--侦听用户下拉操作*/onPullDownRefresh:function(){},/**页面下拉事件的处理函数*/onReachBottom:function){this.getData()},//**用户单击右上角共享*/onShareAppMessage:function,currentTab:函数(e){if(this.data.currentTab==e.currentTarget.dataset.idx){return;}this.setData({currentTab:e.currentTarget.dataset.idx})this.select={page:1,size:6,isEnd:false}this.data。sendList=[];this.getData()},getData:function(){var_this=this;if(this.select.isEnd){return}vartype=this.data.currentTab==0?

在实际项目中,经常会遇到点击切换不同内容的情况,尤其是个人中心的订单页,还要同时实现滚动分页效果。

效果如下:

微信小程序 tab切换内容及分页第1张

微信小程序 tab切换内容及分页第2张

<view class="tabNav">
    <view wx:for="{{navTab}}" wx:key="index" data-idx="{{index}}" bindtap="currentTab" class="{{currentTab==index ? 'cur' : ''}}"><text>{{item}}</text></view>
</view>
<view class="orderInfo">
  <view   wx:for="{{sendList}}" wx:key="index"> 这是内容{{item.content}} </view> 
</view>

  

.tabNav{z-index: 4; position: fixed; top:0;left:0; 100%; height:80rpx; line-height: 80rpx; background: #fff; display: flex; padding:0 30rpx; border-bottom:1px solid #f5f5f5; box-sizing: border-box; }
.tabNav> view{text-align: center; margin-right:50rpx;}
.tabNav> view:last-child{ margin-right: 0;}
.tabNav> view text{padding:0 15rpx; height:75rpx; display:inline-block;}
.tabNav .cur text{ border-bottom:5rpx solid #36ccf9; color:#000;}
import cfg from '../../utils/config.js';
import util from '../../utils/util.js';
var app = getApp();
Page({
  /**
   * 页面的初始数据
   */
  data: {
    navTab: ['全部订单','待付款','待发货', '待收货'],        
    currentTab: 0,
    sendList:[],
  },
  select: {
    page: 1,
    size: 6,
    isEnd: false
  },
  /**
   * 生命周期函数--监听页面加载
   */
  onLoad: function (options) {
    this.getData()
  },

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

  },

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh: function () {

  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom: function () {
    this.getData()
  },

  /**
   * 用户点击右上角分享
   */
  onShareAppMessage: function () {

  },
  currentTab: function (e) {
    if (this.data.currentTab == e.currentTarget.dataset.idx){
      return;
    }
    this.setData({
      currentTab: e.currentTarget.dataset.idx
    })
    this.select={
      page: 1,
      size: 6,
      isEnd: false
    }
    this.data.sendList=[];
    this.getData()
  },
  getData:function(){
    var _this=this;
    if (this.select.isEnd){
      return
    }
    var type = this.data.currentTab == 0 ? 'ALL' : this.data.currentTab == 1 ? 'WAIT_DELIVER' : 'DELIVER';
    util.request(`你的接口地址,后面的是参数` + type + `/` + this.select.page + `/` + this.select.size, {}, 'GET', function (res) {
      var content = res.data.data;
      _this.setData({
        sendList: (_this.data.sendList).concat(content) 
      })
      if (content.length>0){
        _this.select.page++
      }else{
        _this.select.isEnd=true
      }
    })
  },
})

  

每次切换tab,要把原本的数据清空,重置select,防止分页时出现数据混乱的情况,发出请求时,根据现在的currentTab值,去对应的设定type值,请求不同的接口。

免责声明:文章转载自《微信小程序 tab切换内容及分页》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇Golang的高级数据类型-字典(map)实战篇四个漂亮CSS样式表下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

DB2带UPDATE,INSERT语句的函数

带UPDATE,INSERT 语句的函数返回值应该是一个TABLE如:RETURNS TABLE(COL VARCHAR(36))函数中返回应该:return select NEWID from sysibm.sysdummy1;在调用时例子: select*fromtable(UF_GETID('RE'))ast 创建ID函数: CodeCREAT...

[Swift]扩展String类:Base64的编码和解码

★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★➤微信公众号:山青咏芝(shanqingyongzhi)➤博客园地址:山青咏芝(https://www.cnblogs.com/strengthen/)➤GitHub地址:https://github.com/strengthen/LeetCode➤原文地址:https://w...

微信小程序picker组件两列关联使用方式

在使用微信小程序picker组件时候,可以设置属性 mode = multiSelector 意为多列选择,关联选择,当第一列发生改变时侯,第二列甚至第三列发生相应的改变。但是官方文档上给的只有三列数据关联改变,没有两列改变得,我在写的时候琢磨了很久官方文档,于是写下此篇文档,作为总结。 结构文件 <picker mode="multiSelecto...

小程序安全性浅析

引言 近期微信小程序重磅发布,在互联网界掀起不小的波澜,已有许多公司发布了自己的小程序,涉及不同的行业领域。大家在体验小程序用完即走便利的同时,是否对小程序的安全性还存有疑虑。白泽日前对微信小程序进行初步的安全技术分析,在此整理出来抛砖引玉,如有描述不当的地方,欢迎纠正,轻拍。 本文中,大白将从小程序的框架、功能模块安全、账户使用安全方面进行剖析,希望能为...

oracle查询连接数、并发数、共享池大小

1、查看当前数据库建立的会话情况: select sid,serial#,username,program,machine,status from v$session; 2、查询数据库当前进程的连接数: select count(*) from v$process; 3、查看数据库当前会话的连接数: select count(*) from v$sessi...

CSS之user-select——设置标签中的文字是否可被复制

  详细介绍请参考 http://www.css88.com/book/css/properties/user-interface/user-select.htm   CSS样式 user-select:none | text | all | element,默认情况下是text,表示标签中的文字可以被复制,none是不可被复制。   为了兼容各种浏览器,...