mysql下拉刷新加载数据_怎么在vue中使用mescroll+ajax实现上拉加载下拉刷新?

怎么使用mescroll+ajax实现上拉加载下拉刷新,mescroll官网给的例子一点都不详细,

我试着把官网给的例子粘贴到vue中,但是一直都报错。

<!-- 头部 -->

<!-- <page-header></page-header> -->

<!-- 内容 -->

<div class="container">

<div id="mescroll" class="mescroll">

<!--模拟的内容-->

<!-- <img src="img/beibei1.jpg"/>

<img src="img/beibei2.jpg"/> -->

<!--展示上拉加载的数据列表-->

<ul id="dataList" class="list">

<!--<li>

<img class="pd-img" src="../res/img/pd1.jpg"/>

<p class="pd-name">商品标题商品标题商品标题商品标题商品标题商品</p>

<p class="pd-price">200.00 元</p>

<p class="pd-sold">已售50件</p>

</li>-->

</ul>

</div>

</div>

<!-- 底部 -->

<!-- <page-footer></page-footer> -->

import MeScroll from ‘mescroll.js’

import ‘mescroll.js/mescroll.min.css’

// 公用

export default {

name: 'signin',

// 混入

//   mixins: [share],

data() {

return {

msg: 'signin',

user: {}

}

},

methods: {

downCallback() {

//加载轮播数据..

//...

//加载列表数据

this.getListDataFromNet(0, 1, function (data) {

//联网成功的回调,隐藏下拉刷新的状态

mescroll.endSuccess();

//设置列表数据

setListData(data, false);

}, function () {

//联网失败的回调,隐藏下拉刷新的状态

mescroll.endErr();

});

},

upCallback(page) {

//联网加载数据

this.getListDataFromNet(page.num, page.size, function (curPageData) {

//联网成功的回调,隐藏下拉刷新和上拉加载的状态;

//mescroll会根据传的参数,自动判断列表如果无任何数据,则提示空;列表无下一页数据,则提示无更多数据;

console.log("page.num=" + page.num + ", page.size=" + page.size + ", curPageData.length=" + curPageData.length);

//方法一(推荐): 后台接口有返回列表的总页数 totalPage

//mescroll.endByPage(curPageData.length, totalPage); //必传参数(当前页的数据个数, 总页数)

//方法二(推荐): 后台接口有返回列表的总数据量 totalSize

//mescroll.endBySize(curPageData.length, totalSize); //必传参数(当前页的数据个数, 总数据量)

//方法三(推荐): 您有其他方式知道是否有下一页 hasNext

//mescroll.endSuccess(curPageData.length, hasNext); //必传参数(当前页的数据个数, 是否有下一页true/false)

//方法四 (不推荐),会存在一个小问题:比如列表共有20条数据,每页加载10条,共2页.如果只根据当前页的数据个数判断,则需翻到第三页才会知道无更多数据,如果传了hasNext,则翻到第二页即可显示无更多数据.

mescroll.endSuccess(curPageData.length);

//设置列表数据

setListData(curPageData, true);

}, function () {

//联网失败的回调,隐藏上拉加载的状态

mescroll.endErr();

});

},

setListData(curPageData, isAppend) {

var listDom = document.getElementById("dataList");

for (var i = 0; i < curPageData.length; i++) {

var pd = curPageData[i];

var str = '<img class="pd-img" src="' + pd.pdImg + '"/>';

str += '<p class="pd-name">' + pd.pdName + '</p>';

str += '<p class="pd-price">' + pd.pdPrice + ' 元</p>';

str += '<p class="pd-sold">已售' + pd.pdSold + '件</p>';

var liDom = document.createElement("li");

liDom.innerHTML = str;

if (isAppend) {

listDom.appendChild(liDom); //加在列表的后面,上拉加载

} else {

listDom.insertBefore(liDom, listDom.firstChild); //加在列表的前面,下拉刷新

}

}

},

getListDataFromNet(pageNum, pageSize, successCallback, errorCallback) {

//延时一秒,模拟联网

setTimeout(function () {

$.ajax({

type: 'GET',

url: '../../static/js/students.json',

//                        url: '../res/pdlist1.json?num='+pageNum+'&size='+pageSize,

dataType: 'json',

success: function (data) {

var listData = [];

if (pageNum == 0) {

//此处模拟下拉刷新返回的数据

var i = Math.floor(Math.random() * data.length); //随机取一个商品返回

data[i].pdName = "【新增商品】 商品标题";

listData.push(data[i]);

} else {

//此处模拟上拉加载返回的数据 (模拟分页数据)

for (var i = (pageNum - 1) * pageSize; i < pageNum * pageSize; i++) {

if (i == data.length) break;

listData.push(data[i]);

}

}

//回调

successCallback(listData);

},

error: errorCallback

});

}, 2000)

}

},

mounted() {

//创建MeScroll对象,down可以不用配置,因为内部已默认开启下拉刷新,重置列表数据为第一页

//解析: 下拉回调默认调用mescroll.resetUpScroll(); 而resetUpScroll会将page.num=1,再执行up.callback,从而实现刷新列表数据为第一页;

var self = this;

self.mescroll = new MeScroll("mescroll", { //请至少在vue的mounted生命周期初始化mescroll,以确保您配置的id能够被找到

down: {

auto: false, //是否在初始化完毕之后自动执行下拉回调callback; 默认true

callback: this.downCallback //下拉刷新的回调

},

up: {

auto: true, //初始化完毕,是否自动触发上拉加载的回调

isBoth: true, //上拉加载时,如果滑动到列表顶部是否可以同时触发下拉刷新;默认false,两者不可同时触发; 这里为了演示改为true,不必等列表加载完毕才可下拉;

callback: this.upCallback, //上拉加载的回调

isBounce: false, //此处禁止ios回弹,解析(务必认真阅读,特别是最后一点): http://www.mescroll.com/qa.html#q10

toTop: { //配置回到顶部按钮

// src: "../res/img/mescroll-totop.png", //默认滚动到1000px显示,可配置offset修改

//offset : 1000

}

}

});

this.downCallback()

// this.downCallback()

},

// 组件创建

created() {

this.getListDataFromNet()

}

}

f2c9d74d8cc4b1146b7011e233359086.png

请大佬给指点指点

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值