Skip to content

Commit 6e50e80

Browse files
committed
perf: 增加自动生成与绑定目标元素的class
1 parent 6c23cf0 commit 6e50e80

File tree

1 file changed

+21
-14
lines changed

1 file changed

+21
-14
lines changed

src/directives/pull-refresh.ts

+21-14
Original file line numberDiff line numberDiff line change
@@ -5,22 +5,29 @@
55
import { DirectiveBinding } from 'vue/types/options';
66
import PullToRefresh from 'pulltorefreshjs';
77

8+
let counter = 1;
9+
810
export default {
9-
bind(el: Element, binding: DirectiveBinding) {
11+
inserted(el: Element, binding: DirectiveBinding) {
1012
const callback = binding.value;
11-
// 向下拉刷新列表
12-
PullToRefresh.init({
13-
instructionsPullToRefresh: '下拉刷新',
14-
instructionsReleaseToRefresh: '松开刷新',
15-
instructionsRefreshing: '加载中',
16-
passive: true,
17-
onRefresh: () => {
18-
return callback && callback();
19-
},
20-
shouldPullToRefresh() {
21-
return !document.body.scrollTop && !window.scrollY;
22-
}
23-
});
13+
let query = `pull_refresh_trigger_${counter++}`;
14+
el.classList.add(query);
15+
query = '.' + query;
16+
setTimeout(() => {
17+
PullToRefresh.init({
18+
triggerElement: query,
19+
instructionsPullToRefresh: '下拉刷新',
20+
instructionsReleaseToRefresh: '松开刷新',
21+
instructionsRefreshing: '加载中',
22+
passive: true,
23+
onRefresh: () => {
24+
return callback && callback();
25+
},
26+
shouldPullToRefresh() {
27+
return !document.body.scrollTop && !window.scrollY;
28+
}
29+
});
30+
}, 0);
2431
},
2532
unbind() {
2633
PullToRefresh.destroyAll();

0 commit comments

Comments
 (0)