Loadmore —— 下拉/上拉刷新,支持自定义 HTML 模板
参考资料:http://mint-ui.github.io/docs/#/zh-cn2/loadmore
组件解析:http://blog.csdn.net/u010014658/article/details/72912200
引入
JavaScript Code复制内容到剪贴板
- import { Loadmore } from 'mint-ui';
- Vue.component(Loadmore.name, Loadmore);
例子
XML/HTML Code复制内容到剪贴板
- <mt-loadmore :top-method="loadTop" :bottom-method="loadBottom" :bottom-all-loaded="allLoaded" ref="loadmore">
- <ul>
- <li v-for="item in list">{{ item }}</li>
- </ul>
- </mt-loadmore>
JavaScript Code复制内容到剪贴板
- export default {
- data:function() {
- return {
- msg: '单词学习',
- topStatus: ''
- }
- },
- mounted(){
- this.init(); //初次访问重新设置标题名
- },
- methods: {
- init:function () {
- this.$store.commit('changePageTitle', '学习列表');
- },
- handleTopChange(status) {
- this.topStatus = status;
- },
- }
- }
自定义 HTML 模板
可以为列表顶部和底部的加载提示区域提供自定义的 HTML 模板
XML/HTML Code复制内容到剪贴板
- <mt-loadmore :top-method="loadTop" @top-status-change="handleTopChange">
- <ul>
- <li v-for="item in list">{{ item }}</li>
- </ul>
- <div slot="top" class="mint-loadmore-top">
- <span v-show="topStatus !== 'loading'" :class="{ 'rotate': topStatus === 'drop' }">↓</span>
- <span v-show="topStatus === 'loading'">Loading...</span>
- </div>
- </mt-loadmore>
需要配置列表顶部的 HTML,则需要为自定义 HTML 模板的最外层标签设置 slot
属性为 top
,类名为 mint-loadmore-top
。
当用户滑动组件时,组件会有以下几个状态:
pull
:组件已经被按下,但按下的距离未达到topDistance
,此时释放不会触发top-method
,列表会回到初始位置drop
:按下的距离不小于topDistance
,此时释放会触发top-method
loading
:组件已被释放,top-method
正在执行 每当组件的状态发生变化时,loadmore
都会触发top-status-change
方法,参数为组件目前的状态。因此可以像本例一样,使用一个handleTopChange
方法来处理组件状态的变化。