• 技术文章 >web前端 >js教程

    mint-ui loadmore上拉加载与下拉刷新冲突处理方法

    php中世界最好的语言php中世界最好的语言2018-04-14 16:47:33原创3541

    这次给大家带来mint-ui loadmore上拉加载与下拉刷新冲突处理方法,mint-ui loadmore上拉加载与下拉刷新冲突处理的注意事项有哪些,下面就是实战案例,一起来看一下。

    所遇问题:

    该页面为双选项卡联动,四个部分都需要上拉加载和下拉刷新功能,使用的mint-ui的loadmore插件,分别加上上拉加载后,只有最后一个的this.$refs.loadmore.onTopLoaded();this.$refs.loadmore.onBottomLoaded();

    有效,其他的三个都无效,这两句话是意思是查询完要调用一次,用于重新定位

    分析原因:

    首先这四个模块都是用的     

    <mt-loadmore :top-method="loadTop"
         :bottom-method="loadBottom"
         :bottom-all-loaded="allLoaded"
         ref="loadmore">
         <ul class="ul-box">
         <li class="list-cell ta-line" v-for="(item,index) in gridNoPayMail" :key="item+'walletdetail1'" @click="choose(index)">
          <p class="checkboxOne">
          <input type="checkbox" name="checkInput" :id="'id1' + index" v-model="item.checked" disabled/>
          <label :for="'id1' + index"></label>
          </p>
          <p class="left-text">
          <p class="award">{{item.a}}</p>
          <p class="time">{{item.b}}</p>
          </p>
          <p class="right-text">
          <p class="addinfo">¥{{item.c}}</p>
          </p>
         </li>
         </ul>
        </mt-loadmore>

    top-method和bottom-method,bottom-all-loaded分别赋予不同的事件名,前两个事件分别表示下拉,上拉,第三个若为真,则 bottomMethod 不会被再次触发,一般进入页面我们默认为false

    调用接口成功后进行的取消加载的判断,这里可以给接口的方法一个type值,如果type为top1时则证明正在进行的是下拉刷新执行this.$refs.loadmore1.onTopLoaded();,上拉加载同理,其他三个模块同理

    if(type=='top1'){
       this.$refs.loadmore1.onTopLoaded();
       }else if(type=='bottom1'){ 
    this.$refs.loadmore1.onBottomLoaded();
    }

    到了这里就会出现开始所描述问题,

    解决方法

    一开始做了很多尝试,比如利用v-if当一个模块显示时让其他三个隐藏,总是会出现不同的问题,后来将ref="loadmore"中ref后的参数在四个模块中做了区分比如分别为loadmore1,loadmore2……,这里我是这样理解的,ref 在此的作用为子组件指定一个索引 ID,类似于dom元素的id,id名不能相同,所以我们将ref修改为不同的参数,问题解决,

    附Vue官网链接https://vuejs.org/

      mint-ui:https://mint-ui.github.io/docs/#/en2/loadmore

    PS:mint-ui loadmore组件注意问题

    loadTop(){
        this.$store.dispatch('getNewsList',{channelId:this.id,page:0,size:this.size});
        this.$refs.loadmore.onTopLoaded();
    },

    比如在做下拉刷新的时候,切记在下拉刷新的函数中要加

    this.$refs.loadmore.onTopLoaded();

    这行代码,否则下拉加载之后一直显示加载中,而不会加载完成。

    相信看了本文案例你已经掌握了方法,更多精彩请关注php中文网其它相关文章!

    推荐阅读:



    以上就是mint-ui loadmore上拉加载与下拉刷新冲突处理方法的详细内容,更多请关注php中文网其它相关文章!

    声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。

    前端(VUE)零基础到就业课程:点击学习

    清晰的学习路线+老师随时辅导答疑

    自己动手写 PHP MVC 框架:点击学习

    快速了解MVC架构、了解框架底层运行原理

    专题推荐:loadmore mint-ui 刷新
    上一篇:微信小程序怎样使图片上传至服务器 下一篇:自己动手写 PHP MVC 框架(40节精讲/巨细/新人进阶必看)

    相关文章推荐

    • ❤️‍🔥共22门课程,总价3725元,会员免费学• ❤️‍🔥接口自动化测试不想写代码?• 浅析Angular中的Change Detection机制• 一文详解多版本node的安装和管理• Angular学习之聊聊Http ( 错误处理 / 请求拦截 )• 浅析Angular变更检测中的订阅异步事件• 一文聊聊node中的path模块
    1/1

    PHP中文网