下拉刷新(扩展Scroller、List)
Weex 自带的<refresh>
组件使用起来不是很好用,效果也差强人意,综合考虑由 native 端来实现下拉刷新,方式是在 `<scroller>、<list>` 组件的基础上进行扩展,这样对于前端的改动最小,使用也非常简单,具体方式如下:
效果:
扩展特性
说明:在原有`<scroller>、<list>`组件基础上添加`showRefresh`属性来控制是否需要显示下拉刷新组件;
showRefresh {bool}
:当值为`true`时 native 端自动为`<scroller>`或`<list>`添加下拉刷新组件(缺省此属性或者值为`false`时不会显示下拉刷新组件);
扩展事件
refresh
:当下拉并执行刷新操作时会触发这个事件,你可以在这个事件的处理函数中来执行刷新的操作,如重新请求数据;
refreshEnd
: 结束刷新动画,当刷新的操作完毕后需要调用此方法来结束刷新动画;
<template>
<div class="wrap">
<!-- 头部 -->
<layout-header></layout-header>
<list ref="list" :showRefresh="true" @refresh="onrefresh">
...
...
</list>
</div>
</template>
<script>
var globalEvent = weex.requireModule('globalEvent');
module.exports = {
data() {
...
},
components: {
...
},
methods: {
onrefresh() {
Promise.all([disease.GET_COMMONDISEASES_LIST(this), banner.GET_BANNER_LIST(this)]).then(() => {
// 请求数据结束后调用 refreshEnd 方法
this.$refs["list"].refreshEnd()
})
}
}
}
</script>