小程序(八)列表展示,数据传递,页面跳转
2021-08-05 18:34:00

 

小程序(八)列表展示,数据传递,页面跳转_ico


大家好,我是 andy(陈)

 

上篇文章介绍了小程序网络通讯和数据解析;本篇文章接着上篇内容继续为大家介绍小程序的其它特性使用(有些未必是很复杂的功能,但是是项目开发中使用的基本操作,本文也会介绍),本文针对功能点做特殊实例讲解,特别详细的整体使用我们会在其它的文章中来展开说明。

 

 

 

1. 数据列表展示

  • message.wxml

 

通过message.wxml 设置界面的展示效果 

 

  •  
<view class="container">    <block wx:for="{{list}}" wx:key="key">        <view class="brand_item" data-id='{{index}}' catchtap='onlineClick'>            <icon class="pic" style="visibility:{{item.isRead == 1 ? 'hidden' : 'visible'}}"></icon>            <view class="right_cont">                <text class="name">{{item.name}}</text>                <text class="time">{{item.cate_sname}}</text>            </view>        </view>        <!-- </navigator> -->    </block></view>

 

 

  • message.wxss

 

通过messagewxss文件设置界面的布局位置

  •  
page{    background: #fff;    font-size: 14px;}.container .brand_item{    display: flex;    align-items: center;    justify-content: center;    border-bottom: 1px solid #e4e4e4;    padding-top: 10px;    padding-bottom: 10px;    width: 100%;}.container .brand_item .pic{    display: block;    width: 10px;    height: 10px;    margin: 10px;    border-radius: 100%;    background-color: #f7bc92;}.right_cont{    display: flex;    flex-direction: column;    padding-right: 10px;    width: 90%;}.right_cont .name{    overflow: hidden;    display: -webkit-box;    -webkit-line-clamp: 2;    -webkit-box-orient: vertical;    text-overflow: ellipsis;    color: #353f41;    font-size: 32rpx;    width: 100%;    float: left;}    .weui-loadmore {    width: 65%;    margin: 1.5em auto;    line-height: 1.6em;    font-size: 14px;    text-align: center;  }    .weui-loadmore__tips {    display: inline-block;    vertical-align: middle;  }   .right_receive{    display: flex;    flex-direction: row;  }   .right_receive .time{    position: relative;    color: #778ea6;    width: 70%;    float: left;    margin-top: 10rpx;    font-size: 24rpx;}

 

 

  • message.json

 

 

  •  
{  "navigationBarTitleText": "消息",  "enablePullDownRefresh": true,  "backgroundColor": "#f8f8f8"}

 

 

  • message.js

 

通过message.js中的访问接口,获取列表数据(调用的接口参照上一章 网络通讯)

  •  
/**  * 访问请求接口  */  requestData: function () {    let that = this    let param = {      "size":10,      "page":1    }    util.getReq('https://api.apiopen.top/musicBroadcasting', param, function (res) {      console.debug(res);      wx.hideLoading()      if (res.code == 200) {        if (null != res.result[0].channellist && res.result[0].channellist != "") {            that.setData({              list: res.result[0].channellist,              totalPage: 1,            })          } else {            that.setData({              isHideNoMore: false            })          }       } else {              }    })  },

 

 

2. 数据传递

获取数据并传递数据设置

 

  •  
 //点击每一行进入详情,带入数据 name  onlineClick: function (e) {    var that = this;    //获取下标    var index = e.currentTarget.dataset.id;//获取数据列表的下标    console.log(index)    var name = this.data.list[index].name;//获取名称信息,传递      wx.navigateTo({        url: 'detail/msgadetail?con=' + name  //设置跳转的界面 绝对路径和参数拼接      })  },

 

获取传递的数据

 

接收数据 需要在 detail目录下的msgdetail文件中获取

 

 

  •  
/**   * 生命周期函数--监听页面加载   */  onLoad: function (options) {    // 详情    var that = this;    wx.setNavigationBarTitle({//设置传递的数据作为标题显示      title: options.con,//options.con 为获取的传递的数据    })  },

 

 

3. 界面跳转

1. wx.navigateTo({}) ,保留当前页面,跳转到应用内的某个页面,使用 wx.navigateBack 可以返回

 

 

  •  
wx.navigateTo({      url:'../test/test?id=1&page=4',  //跳转页面的路径,可带参数 ?隔开,不同参数用 & 分隔;相对路径,不需要.wxml后缀      success:function(){}        //成功后的回调;      fail:function(){}          //失败后的回调;      complete:function(){}      //结束后的回调(成功,失败都会执行)  })    传递的参数在接收页面onLoad()函数中得到值:option.id就可以得到了  onLoad: function (option) {    console.log(option)//可以打印一下option看查看参数     this.setData({         id:option.id,  });

 

 

2. wx.redirectTo() , 关闭当前页面,跳转到非tabBar的某个页面

3. 使用组件  <navigator>

 

  •  
<navigator url='../test/test'>点击跳转</navigator>

4. wx.switchTab ,跳转到tabBar的某个页面

 

 

  •  
wx.switchTab({      url: '../taste/index',   //注意switchTab只能跳转到带有tab的页面,不能跳转到不带tab的页面    })

 

 

 

4. 返回上一页数据参数传递

  •  
 goback: function () {     let city = '你好';    let id = 1;    let pages = getCurrentPages()    let prePage = pages[pages.length - 2]  //上一个界面    prePage.setData({      addresCon: city,      cityid: id    })    wx.navigateBack({});//返回上一页   },

5.隐藏和显示效果

  •  
<view class="container">    <block wx:for="{{list}}" wx:key="key">        <view class="brand_item" data-id='{{index}}' catchtap='onlineClick'>            <icon class="pic" style="visibility:{{item.isRead == 1 ? 'hidden' : 'visible'}}"></icon> //判断isRead是否隐藏            <view class="right_cont">                <text class="name">{{item.name}}</text>                <text class="time">{{item.cate_sname}}</text>            </view>        </view>        <!-- </navigator> -->    </block></view>


总结

使用小程序可以非常方便、快速开发小程序,我们不用关心api中的组件等的其他,适用版本等各种问题,我们想使用任何东西,仅仅添加一个配置就可以。

附演示demo地址:https://github.com/chenjianpeng/project/tree/master/demo2

 

 

小程序(八)列表展示,数据传递,页面跳转_小程序_02

 

 

 

- End -

 

 

 

小程序(八)列表展示,数据传递,页面跳转_小程序_03

长按二维码关注

期待您的加入

 

 

 

小程序(八)列表展示,数据传递,页面跳转_ico_04

 

 

 

 

资源整理:
包括不限于Java、Python、Linux、前端、人工智能、架构、大数据、电子书 ,移动端,小程序,项目等

 

本文摘自 :https://blog.51cto.com/u


更多科技新闻 ......