• Stars
    star
    165
  • Rank 228,906 (Top 5 %)
  • Language
    JavaScript
  • Created about 8 years ago
  • Updated almost 2 years ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

微信小程序实现--列表的上拉刷新和上拉加载

WeiXinProject

微信小程序实现--列表的上拉刷新和上拉加载

微信小程序可谓是9月21号之后最火的一个名词了,一经出现真是轰炸了整个开发人员,当然很多App开发人员有了一个担心,微信小程序的到来会不会让移动端App颠覆,让移动端的程序员失业,身为一个Android开发者我是不相信的,即使有,那也是需要个一两年的过度和打磨才能实现的吧。

不管微信小程序是否能颠覆当今的移动开发格局,我们都要积极向上的心态去接收,去学习。不排斥新技术,所以,心动不如行动,赶紧先搭建一个微信小程序开发工具。那么接下来就让我们来开始学习列表的上拉加载和下拉刷新的实现吧(通过聚合数据平台获取微信新闻)。

##1.介绍几个组件

###1.1 scroll-view 组件

这里写图片描述

注意:使用竖向滚动时,需要给一个固定高度,通过 WXSS 设置 height。 ###1.2 image组件

这里写图片描述

注意:mode有12种模式,其中3种是缩放模式,9种是裁剪模式。 ###1.3 Icon组件 这里写图片描述

iconType: [ 'success', 'info', 'warn', 'waiting', 'safe_success', 'safe_warn', 'success_circle', 'success_no_circle', 'waiting_circle', 'circle', 'download', 'info_circle', 'cancel', 'search', 'clear' ]

2.列表的上拉加载和下拉刷新的实现

##2.1先来张效果图 这里写图片描述 ##2.2逻辑很简单,直接上代码 ###2.2.1 detail.wxml 布局文件

<loading hidden="{{hidden}}" bindchange="loadingChange">
    加载中...
  </loading>  
 <scroll-view scroll-y="true" style="height: 100%;" bindscrolltolower="loadMore" bindscrolltoupper="refesh">
      <view wx:if="{{hasRefesh}}" style="display: flex;flex-direction: row;align-items: center;align-self: center;justify-content: center;">
      <icon type="waiting" size="45"/><text>刷新中...</text></view>
      <view wx:else  style="display:none" ><text></text></view>
  <view class="lll"  wx:for="{{list}}" wx:for-item="item" bindtap="bindViewTap" 
         data-title="{{item.title}}" >
      <image style=" width: 50px;height: 50px;margin: 20rpx;" src="{{item.firstImg}}"   ></image>
      <view  class="eee" > 
       <view style="margin:5px;font-size:8px"> 标题:{{item.title}}</view>
       <view style="margin:5px;color:red;font-size:6px"> 来源:{{item.source}}</view>
       </view>
</view>
<view class="tips1">
      <view wx:if="{{hasMore}}" style="display: flex;flex-direction: row;align-items: center;align-self: center;justify-content: center;">
      <icon type="waiting" size="45"/><text>玩命的加载中...</text></view>
      <view wx:else><text>没有更多内容了</text></view>
    </view>
 </scroll-view>

###2.2.1 detail.js逻辑代码文件


var network_util = require('../../utils/network_util.js');
var json_util = require('../../utils/json_util.js');
Page({
  data:{
    // text:"这是一个页面"
    list:[],
     dd:'',
     hidden:false,
     page: 1,
     size: 20,
     hasMore:true,
     hasRefesh:false
  },
  onLoad:function(options){
    var that = this;
    var url = 'http://v.juhe.cn/weixin/query?key=f16af393a63364b729fd81ed9fdd4b7d&pno=1&ps=10';
    network_util._get(url,
    function(res){
    that.setData({
       list:res.data.result.list,
       hidden: true,
    });
    },function(res){
     console.log(res);
 });
  },
  onReady:function(){
    // 页面渲染完成
  },
  onShow:function(){
    // 页面显示
  },
  onHide:function(){
    // 页面隐藏
  },
  onUnload:function(){
    // 页面关闭
  },
   //点击事件处理
  bindViewTap: function(e) {
    console.log(e.currentTarget.dataset.title);
  },
  //加载更多
  loadMore: function(e) {
     var that = this;
    that.setData({
    hasRefesh:true,});
    if (!this.data.hasMore) return
    var url = 'http://v.juhe.cn/weixin/query?key=f16af393a63364b729fd81ed9fdd4b7d&pno='+(++that.data.page)+'&ps=10';
    network_util._get(url,
    function(res){
    that.setData({
       list: that.data.list.concat(res.data.result.list),
       hidden: true,
       hasRefesh:false,
    });
    },function(res){
     console.log(res);
  })
},
//刷新处理
refesh: function(e) {
 var that = this;
 that.setData({
    hasRefesh:true,
 });
    var url = 'http://v.juhe.cn/weixin/query?key=f16af393a63364b729fd81ed9fdd4b7d&pno=1&ps=10';
    network_util._get(url,
    function(res){
    that.setData({
      list:res.data.result.list,
       hidden: true,
       page:1,
       hasRefesh:false,
    });
    },function(res){
     console.log(res);
 })
},
})

最后的效果: 这里写图片描述

关于新闻的详情实现,后面在实现,由于还不知道怎么加载h5页面。谢谢你学习,有问题直接QQ(1561281670)交流。

More Repositories

1

AndroidRapidLibrary

Android 快速开发库,主要想实现一条属于自己的开发框架。包括网络访问,数据,UI等等
Java
578
star
2

Android-UploadMultipartImage

Android 仿照微信发说说,既能实现拍照,选图库,多图案上传 使用Retrofit技术。
Java
334
star
3

Android-ble

Android蓝牙4.0操作demo
Java
242
star
4

AndroidPDF

Java
195
star
5

wx_ble

微信小程序 蓝牙实现
JavaScript
150
star
6

dubbo2.5-spring4-mybastis3.2-springmvc4-mongodb-redis

dubbo2.5-spring4-mybastis3.2-springmvc4-mongodb-redis整合
JavaScript
120
star
7

Swift-BLE

本项目是通过Swift语言来实现IOS中蓝牙4.0的开发
Swift
61
star
8

seata-spring-boot-dubbo-nacos-shardingsphere-examples

如何进行seata1.2.0、sharding-sphere4.1.0和dubbo2.7.5 的整合,以及使用nacos作为我们的配置中心和注册中心
Java
58
star
9

springboot-dubbo-seata-nacos

使用SpringBoot和Seata实现Dubbo分布式事务管理
Java
44
star
10

PopupMenu

Android中自定义popupwindow
Java
43
star
11

health

Health使用react-antvie实现App底部tab切换,项目的引导页,点击“启动应用”,跳转到APP主页,主页底部的五个tab的实现等功能
JavaScript
40
star
12

springboot-dubbo-seata-zk

SpringBoot+Zookeeper+Seata实现Dubbo分布式事务管理
Java
18
star
13

Swift-Demo

本项目使用swift开发,从UI,网络,进阶,综合四个方面来总结学习
Objective-C
7
star
14

NDKdemo

Android studio中NDK的开发例子
Java
4
star
15

java_design_patterns

Java 设计模式的讲解库,主要适用于学习Java的设计模式
Java
2
star
16

micronaut-learning-example

micronaut 实践学习案例,是 micronaut 初学者及核心技术巩固的最佳实践。
Java
2
star
17

jeecms

HTML
1
star
18

mvp_framework

Java
1
star
19

AndroidProject

Java
1
star
20

lidong1665.github.com

细节决定成败,点滴铸就辉煌。
HTML
1
star