# List ### Intro A list component to show items and control loading status. ### Install ```js import Vue from 'vue'; import { List } from 'vant'; Vue.use(List); ``` ## Usage ### Basic Usage ```html ``` ```js export default { data() { return { list: [], loading: false, finished: false, }; }, methods: { onLoad() { setTimeout(() => { for (let i = 0; i < 10; i++) { this.list.push(this.list.length + 1); } this.loading = false; if (this.list.length >= 40) { this.finished = true; } }, 1000); }, }, }; ``` ### Error Info ```html ``` ```js export default { data() { return { list: [], error: false, loading: false, }; }, methods: { onLoad() { fetchSomeThing().catch(() => { this.error = true; }); }, }, }; ``` ### PullRefresh ```html ``` ```js export default { data() { return { list: [], loading: false, finished: false, refreshing: false, }; }, methods: { onLoad() { setTimeout(() => { if (this.refreshing) { this.list = []; this.refreshing = false; } for (let i = 0; i < 10; i++) { this.list.push(this.list.length + 1); } this.loading = false; if (this.list.length >= 40) { this.finished = true; } }, 1000); }, onRefresh() { this.finished = false; this.loading = true; this.onLoad(); }, }, }; ``` ## API ### Props | Attribute | Description | Type | Default | | --- | --- | --- | --- | | v-model | Whether to show loading info,the `load` event will not be Emitted when loading | _boolean_ | `false` | | finished | Whether loading is finished,the `load` event will not be Emitted when finished | _boolean_ | `false` | | error | Whether loading is error,the `load` event will be Emitted only when error text clicked, the `sync` modifier is needed | _boolean_ | `false` | | offset | The load event will be Emitted when the distance between the scrollbar and the bottom is less than offset | _number \| string_ | `300` | | loading-text | Loading text | _string_ | `Loading...` | | finished-text | Finished text | _string_ | - | | error-text | Error loaded text | _string_ | - | | immediate-check | Whether to check loading position immediately after mounted | _boolean_ | `true` | | direction | Scroll direction,can be set to `up` | _string_ | `down` | ### Events | Event | Description | Arguments | | --- | --- | --- | | load | Emitted when the distance between the scrollbar and the bottom is less than offset | - | ### Methods Use [ref](https://vuejs.org/v2/api/#ref) to get List instance and call instance methods. | Name | Description | Attribute | Return value | | ----- | --------------------- | --------- | ------------ | | check | Check scroll position | - | - | ### Slots | Name | Description | | -------- | -------------------- | | default | List content | | loading | Custom loading tips | | finished | Custom finished tips | | error | Custom error tips | ### Less Variables How to use: [Custom Theme](#/en-US/theme). | Name | Default Value | Description | | ----------------------- | --------------- | ----------- | | @list-icon-margin-right | `5px` | - | | @list-text-color | `@gray-6` | - | | @list-text-font-size | `@font-size-md` | - | | @list-text-line-height | `50px` | - |