问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

mescroll上拉刷新下拉加载实战使用

发布网友 发布时间:2024-10-03 19:32

我来回答

1个回答

热心网友 时间:2024-10-19 15:10

基于NuxtJS2.x构建的项目实现,mescroll.js为1.4.1

mescroll介绍:精致的下拉刷新和上拉加载js框架

原生js实现,不依赖jquery,zepto

支持Vue

支持uni-app,一套代码多端运行,完美运行于android,iOS,手机各浏览器

兼容PC端主流浏览器

Axios文档

mescroll官网

安装npminstall--savemescroll.js封装

下拉刷新配置defaultMescrollDown

上拉加载配置defaultMescrollUp

是否允许ios的bounce回弹isBounce

<template><!--mescroll滚动区域的基本结构--><mescroll-vueref="mescroll":down="mescrollDown":up="mescrollUp"@init="mescrollInit"><!--内容区域--><slot></slot></mescroll-vue></template><script>//引入mescroll组件importMescrollVuefrom"mescroll.js/mescroll.vue";exportdefault{name:"Mescroll",components:{MescrollVue,},props:{downConfig:{type:Object,default:()=>{},},upConfig:{type:Object,default:()=>{},},},data(){return{mescroll:null,//mescroll实例对象defaultMescrollDown:{//下拉刷新的配置(如果和上拉加载处理的逻辑是一样的,则mescrollDown可不用写)auto:true,//是否在初始化完毕之后自动执行一次下拉刷新的回调callbackcallback:this.downCallback,textInOffset:"pulldowntorefresh",//下拉刷新textOutOffset:"releaseupdate",//释放更新textLoading:"loading",//加载中},defaultMescrollUp:{//上拉加载的配置use:false,//是否启用上拉加载auto:false,callback:this.upCallback,//上拉回调,此处简写;相当于callback:function(page,mescroll){}//以下是一些常用的配置,当然不写也可以的.page:{num:0,//当前页默认0,回调之前会加1;即callback(page)会从1开始size:10,//每页数据条数,默认10},htmlNodata:'<pclass="upwarp-nodata">--END--</p>',noMoreSize:5,//如果列表已无数据,可设置列表的总数量要大于5才显示无更多数据;避免列表数据过少(比如只有一条数据),显示无更多数据会不好看,这就是为什么无更多数据有时候不显示的原因toTop:{//回到顶部按钮src:"./static/mescroll/mescroll-totop.png",//图片路径,默认null,支持网络图offset:1000,//列表滚动1000px才显示回到顶部按钮},empty:{//列表第一页无任何数据时,显示的空提示布局;需配置warpId才显示warpId:"xxid",//父布局的id(1.3.5版本支持传入dom元素)icon:"./static/mescroll/mescroll-empty.png",//图标,默认null,支持网络图tip:"暂无相关数据~",//提示},},dataList:[],//列表数据};},computed:{mescrollDown(){returnObject.assign(this.defaultMescrollDown,this.downConfig);},mescrollUp(){returnObject.assign(this.defaultMescrollUp,this.upConfig);},},//如果没有配置回到顶部按钮或isBounce,则beforeRouteEnter不用写beforeRouteEnter(to,from,next){next((vm)=>{//找到当前mescroll的ref,调用子组件mescroll-vue的beforeRouteEnter方法//进入路由时,滚动到原来的列表位置,恢复回到顶部按钮和isBounce的配置vm.$refs.mescroll&&vm.$refs.mescroll.beforeRouteEnter();});},//如果没有配置回到顶部按钮或isBounce,则beforeRouteLeave不用写beforeRouteLeave(to,from,next){//找到当前mescroll的ref,调用子组件mescroll-vue的beforeRouteLeave方法//退出路由时,记录列表滚动的位置,隐藏回到顶部按钮和isBounce的配置this.$refs.mescroll&&this.$refs.mescroll.beforeRouteLeave();next();},beforeDestroy(){if(this.mescroll){this.mescroll.destroy();this.mescroll=null;}},methods:{//mescroll组件初始化的回调,可获取到mescroll对象mescrollInit(mescroll){//如果this.mescroll对象没有使用到,则mescrollInit可以不用配置this.mescroll=mescroll;},downCallback(mescroll){this.$emit("down-callback",mescroll);},//上拉回调page={num:1,size:10};num:当前页,默认从1开始;size:每页数据条数,默认10upCallback(page,mescroll){//联网请求axios.get("xxxxxx",{params:{num:page.num,//页码size:page.size,//每页长度},}).then((response)=>{//请求的列表数据constarr=response.data;//如果是第一页需手动置空列表if(page.num===1){this.dataList=[];}//把请求到的数据添加到列表this.dataList=this.dataList.concat(arr);//数据渲染成功后,隐藏下拉刷新的状态this.$nextTick(()=>{mescroll.endSuccess(arr.length);});}).catch((e)=>{//联网失败的回调,隐藏下拉刷新和上拉加载的状态;mescroll.endErr();});},},};</script><stylescoped></style>使用<template><mescroll-component@down-callback="downCallback"><list-product:list-data="listData"></list-product></mescroll-component></template><script>importMescrollComponentfrom"~/components/common/Mescroll";importListProductfrom"~/components/product/ListProduct.vue";exportdefault{components:{MescrollComponent,ListProduct,},data(){return{mescroll:null,listData:[],};},methods:{downCallback(mescroll){this.mescroll=mescroll;this.$axios.post("xxx").then((res)=>{if(res.code===0){this.listData=res.response;this.mescroll.scrollTo(0,0);//回到顶部this.$nextTick(()=>{this.mescroll.endSuccess();});}else{this.mescroll.endErr();}}).catch((error)=>{this.mescroll.endErr(error);});},},};</script><stylelang="scss"scoped>.mescroll{height:calc(100%-1rem);}</style>

热心网友 时间:2024-10-19 15:10

基于NuxtJS2.x构建的项目实现,mescroll.js为1.4.1

mescroll介绍:精致的下拉刷新和上拉加载js框架

原生js实现,不依赖jquery,zepto

支持Vue

支持uni-app,一套代码多端运行,完美运行于android,iOS,手机各浏览器

兼容PC端主流浏览器

Axios文档

mescroll官网

安装npminstall--savemescroll.js封装

下拉刷新配置defaultMescrollDown

上拉加载配置defaultMescrollUp

是否允许ios的bounce回弹isBounce

<template><!--mescroll滚动区域的基本结构--><mescroll-vueref="mescroll":down="mescrollDown":up="mescrollUp"@init="mescrollInit"><!--内容区域--><slot></slot></mescroll-vue></template><script>//引入mescroll组件importMescrollVuefrom"mescroll.js/mescroll.vue";exportdefault{name:"Mescroll",components:{MescrollVue,},props:{downConfig:{type:Object,default:()=>{},},upConfig:{type:Object,default:()=>{},},},data(){return{mescroll:null,//mescroll实例对象defaultMescrollDown:{//下拉刷新的配置(如果和上拉加载处理的逻辑是一样的,则mescrollDown可不用写)auto:true,//是否在初始化完毕之后自动执行一次下拉刷新的回调callbackcallback:this.downCallback,textInOffset:"pulldowntorefresh",//下拉刷新textOutOffset:"releaseupdate",//释放更新textLoading:"loading",//加载中},defaultMescrollUp:{//上拉加载的配置use:false,//是否启用上拉加载auto:false,callback:this.upCallback,//上拉回调,此处简写;相当于callback:function(page,mescroll){}//以下是一些常用的配置,当然不写也可以的.page:{num:0,//当前页默认0,回调之前会加1;即callback(page)会从1开始size:10,//每页数据条数,默认10},htmlNodata:'<pclass="upwarp-nodata">--END--</p>',noMoreSize:5,//如果列表已无数据,可设置列表的总数量要大于5才显示无更多数据;避免列表数据过少(比如只有一条数据),显示无更多数据会不好看,这就是为什么无更多数据有时候不显示的原因toTop:{//回到顶部按钮src:"./static/mescroll/mescroll-totop.png",//图片路径,默认null,支持网络图offset:1000,//列表滚动1000px才显示回到顶部按钮},empty:{//列表第一页无任何数据时,显示的空提示布局;需配置warpId才显示warpId:"xxid",//父布局的id(1.3.5版本支持传入dom元素)icon:"./static/mescroll/mescroll-empty.png",//图标,默认null,支持网络图tip:"暂无相关数据~",//提示},},dataList:[],//列表数据};},computed:{mescrollDown(){returnObject.assign(this.defaultMescrollDown,this.downConfig);},mescrollUp(){returnObject.assign(this.defaultMescrollUp,this.upConfig);},},//如果没有配置回到顶部按钮或isBounce,则beforeRouteEnter不用写beforeRouteEnter(to,from,next){next((vm)=>{//找到当前mescroll的ref,调用子组件mescroll-vue的beforeRouteEnter方法//进入路由时,滚动到原来的列表位置,恢复回到顶部按钮和isBounce的配置vm.$refs.mescroll&&vm.$refs.mescroll.beforeRouteEnter();});},//如果没有配置回到顶部按钮或isBounce,则beforeRouteLeave不用写beforeRouteLeave(to,from,next){//找到当前mescroll的ref,调用子组件mescroll-vue的beforeRouteLeave方法//退出路由时,记录列表滚动的位置,隐藏回到顶部按钮和isBounce的配置this.$refs.mescroll&&this.$refs.mescroll.beforeRouteLeave();next();},beforeDestroy(){if(this.mescroll){this.mescroll.destroy();this.mescroll=null;}},methods:{//mescroll组件初始化的回调,可获取到mescroll对象mescrollInit(mescroll){//如果this.mescroll对象没有使用到,则mescrollInit可以不用配置this.mescroll=mescroll;},downCallback(mescroll){this.$emit("down-callback",mescroll);},//上拉回调page={num:1,size:10};num:当前页,默认从1开始;size:每页数据条数,默认10upCallback(page,mescroll){//联网请求axios.get("xxxxxx",{params:{num:page.num,//页码size:page.size,//每页长度},}).then((response)=>{//请求的列表数据constarr=response.data;//如果是第一页需手动置空列表if(page.num===1){this.dataList=[];}//把请求到的数据添加到列表this.dataList=this.dataList.concat(arr);//数据渲染成功后,隐藏下拉刷新的状态this.$nextTick(()=>{mescroll.endSuccess(arr.length);});}).catch((e)=>{//联网失败的回调,隐藏下拉刷新和上拉加载的状态;mescroll.endErr();});},},};</script><stylescoped></style>使用<template><mescroll-component@down-callback="downCallback"><list-product:list-data="listData"></list-product></mescroll-component></template><script>importMescrollComponentfrom"~/components/common/Mescroll";importListProductfrom"~/components/product/ListProduct.vue";exportdefault{components:{MescrollComponent,ListProduct,},data(){return{mescroll:null,listData:[],};},methods:{downCallback(mescroll){this.mescroll=mescroll;this.$axios.post("xxx").then((res)=>{if(res.code===0){this.listData=res.response;this.mescroll.scrollTo(0,0);//回到顶部this.$nextTick(()=>{this.mescroll.endSuccess();});}else{this.mescroll.endErr();}}).catch((error)=>{this.mescroll.endErr(error);});},},};</script><stylelang="scss"scoped>.mescroll{height:calc(100%-1rem);}</style>
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
新装修怎样去除异味又快又有效,洋葱和土肥皂都试过了,都没用。 新装修的店面通风多久 新店装修通风需要多久? 新装修的店面多久多久没有异味 “新店装修后臭味能持续多长时间”_百 ... 我09年的国三柴油货车,到19年7月以后还能审吗? iebook 怎样让背景音乐从第一页开始放而不是封面开始 iebook超级精灵的背景音乐和页面插入音乐,可以分别控制吗? 用iebook做电子杂志的时候怎么从头到尾设同一首音乐 iebook支持导入多首音乐吗?可不可以对每页进行音乐设置? IEBOOK 往回翻页时上一页的背景音乐怎么样才能从头开始播放而不是接... 如何用iebook连续几页不间断播放同一首音乐? 页面导航跳转并传参,上拉触底加载下一页数据,下拉刷新数据 我的这个戴尔inspiron3541可以加装几G的内存条? 我的戴尔笔记本灵越3541是不是只有一个内存插槽? 戴尔m3541有几个内存条卡槽啊。。表示只看到一个,另一个是不是在内部... 20日成都西边哪些乡镇逢场 从成都双流区中柏路到温江区涌泉街道怎么坐地铁? 钓鱼亭地址在哪里? 沼气中毒怎么办 宁夏哈纳斯新能源集团从成立到发展经历了哪些重大里程碑? 紫石房蛤形态特征 紫石房蛤简介 谁能告诉我鬼步舞AUS风格的侧拉具体步骤,请用文字叙述,谢谢!本人手机... 鬼步舞AUS风格怎么甩手啊,求解 鬼步舞AUS风格问题! 鬼步舞AUS怎么学? 友邦保险公司可靠不? ...被注册了支付宝账号和淘宝账号。 我想用这个号码申请淘宝 我有一个手机号码,先在支付宝上注册了帐号,并且绑定了银行卡,但最近我... 我用手机号注册并登陆了支付宝账户,当我用这个账号去登陆淘宝时,显示账 ... 红歌中国行歌手简介 清明节的清和明是什么意思 中国有那些罕见的姓氏(如亓官丶闾丘之类的) 盐炒花椒泡酒治颈椎病吗 花椒加盐炒一炒治疗关节炎有用吗? 沈阳师范大学录取分数线多少? 家里空调怎样才够冷? 男,20岁,皮肤偏油。两脸颊和太阳穴有红色痘印,有时会痒,易变红。且是... 空调制冷数字越小越冷还是越大越冷? 脸上红色痘印怎么消除 宝骏e200空调怎么开最冷? 《兰陵王》的经典台词 女友把我的微信删了是什么意思? 学前端基础可以应聘什么职位 拼多多电子面单要准备什么(拼多多电子面单需要哪些准备工作?) 拼多多电子面单怎么搞的(如何操作拼多多电子面单?) 怎么使用拼多多电子面单(拼多多电子面单使用指南) 我在看电影,看着正好着呢!突然就死机了,我本来以为重新开机就没事了... ...可以开很多游戏都没事..但最近一开2个奇迹就死机.死机后出现蓝屏.是... 晚上开灯睡觉有危害么?拜托了各位 谢谢 这几张照片哪个照的好看一点,看着多大了,第一印象是什么。走心回答金币...