1
+ <template >
2
+ <el-card shadow =" hover" >
3
+ <template #header >
4
+ <div class =" infinite-list-wrapper" style =" overflow :auto " >
5
+ <ul
6
+ class =" list"
7
+ v-infinite-scroll =" load"
8
+ infinite-scroll-disabled =" disabled" >
9
+ <li v-for =" i in count" :key =" i" class =" list-item" >{{ i }}</li >
10
+ </ul >
11
+ <p v-if =" loading" >加载中...</p >
12
+ <p v-if =" noMore" >没有更多了</p >
13
+ </div >
14
+ </template >
15
+ <el-code collapse :trim =" -1" :first =" 1" >
16
+ {{`<div class =" infinite-list-wrapper" style =" overflow :auto " >
17
+ <ul
18
+ class =" list"
19
+ v-infinite-scroll =" load"
20
+ infinite-scroll-disabled =" disabled" >
21
+ <li v-for =" i in count" :key =" i" class =" list-item" >\{\{ i \}\}</li >
22
+ </ul >
23
+ <p v-if =" loading" >加载中...</p >
24
+ <p v-if =" noMore" >没有更多了</p >
25
+ </div >
26
+ <script lang =" ts" >
27
+ import { computed , defineComponent , ref } from ' vue'
28
+ export default defineComponent ({
29
+ setup () {
30
+ const count = ref (10 )
31
+ const loading = ref (false )
32
+ const noMore = computed (() => {
33
+ return count .value >= 20
34
+ })
35
+ const disabled = computed (() => {
36
+ return loading .value || noMore .value
37
+ })
38
+ const load = () => {
39
+ loading .value = true
40
+ setTimeout (() => {
41
+ count .value += 2
42
+ loading .value = false
43
+ }, 2000 )
44
+ }
45
+ return {
46
+ count,
47
+ loading,
48
+ noMore,
49
+ disabled,
50
+ load
51
+ }
52
+ }
53
+ })
54
+ </script >`}}
55
+ <template #desc ><slot ></slot ></template >
56
+ </el-code >
57
+ </el-card >
58
+ </template >
59
+
60
+ <script lang="ts">
61
+ import { computed , defineComponent , ref } from ' vue'
62
+ export default defineComponent ({
63
+ name: ' Disabled' ,
64
+ setup() {
65
+ const count = ref (10 )
66
+ const loading = ref (false )
67
+ const noMore = computed (() => {
68
+ return count .value >= 20
69
+ })
70
+ const disabled = computed (() => {
71
+ return loading .value || noMore .value
72
+ })
73
+ const load = () => {
74
+ loading .value = true
75
+ setTimeout (() => {
76
+ count .value += 2
77
+ loading .value = false
78
+ }, 2000 )
79
+ }
80
+ return {
81
+ count ,
82
+ loading ,
83
+ noMore ,
84
+ disabled ,
85
+ load
86
+ }
87
+ }
88
+ })
89
+ </script >
0 commit comments