diff --git a/src/list/README.md b/src/list/README.md
index 365c7a5c3..22810c425 100644
--- a/src/list/README.md
+++ b/src/list/README.md
@@ -20,37 +20,43 @@ app.use(List);
```html
-
+
```
```js
+import { reactive } from 'vue';
+
export default {
- data() {
- return {
+ setup() {
+ const state = reactive({
list: [],
loading: false,
finished: false,
- };
- },
- methods: {
- onLoad() {
+ });
+
+ const onLoad = () => {
setTimeout(() => {
for (let i = 0; i < 10; i++) {
- this.list.push(this.list.length + 1);
+ state.list.push(state.list.length + 1);
}
- this.loading = false;
+ state.loading = false;
- if (this.list.length >= 40) {
- this.finished = true;
+ if (state.list.length >= 40) {
+ state.finished = true;
}
}, 1000);
- },
+ };
+
+ return {
+ state,
+ onLoad,
+ };
},
};
```
@@ -59,30 +65,36 @@ export default {
```html
-
+
```
```js
+import { reactive } from 'vue';
+
export default {
- data() {
- return {
+ setup() {
+ const state = reactive({
list: [],
error: false,
loading: false,
- };
- },
- methods: {
- onLoad() {
+ });
+
+ const onLoad = () => {
fetchSomeThing().catch(() => {
- this.error = true;
+ state.error = true;
});
- },
+ };
+
+ return {
+ state,
+ onLoad,
+ };
},
};
```
@@ -90,51 +102,59 @@ export default {
### PullRefresh
```html
-
+
-
+
```
```js
+import { reactive } from 'vue';
+
export default {
- data() {
- return {
+ setup() {
+ const state = reactive({
list: [],
loading: false,
finished: false,
refreshing: false,
- };
- },
- methods: {
- onLoad() {
+ });
+
+ const onLoad = () => {
setTimeout(() => {
- if (this.refreshing) {
- this.list = [];
- this.refreshing = false;
+ if (state.refreshing) {
+ state.list = [];
+ state.refreshing = false;
}
for (let i = 0; i < 10; i++) {
- this.list.push(this.list.length + 1);
+ state.list.push(state.list.length + 1);
}
- this.loading = false;
+ state.loading = false;
- if (this.list.length >= 40) {
- this.finished = true;
+ if (state.list.length >= 40) {
+ state.finished = true;
}
}, 1000);
- },
- onRefresh() {
- this.finished = false;
- this.loading = true;
- this.onLoad();
- },
+ };
+
+ const onRefresh = () => {
+ state.finished = false;
+ state.loading = true;
+ onLoad();
+ };
+
+ return {
+ state,
+ onLoad,
+ onRefresh,
+ };
},
};
```
diff --git a/src/list/README.zh-CN.md b/src/list/README.zh-CN.md
index 9dfb6e03a..0342b674a 100644
--- a/src/list/README.zh-CN.md
+++ b/src/list/README.zh-CN.md
@@ -22,42 +22,48 @@ List 组件通过 `loading` 和 `finished` 两个变量控制加载状态,当
```html
-
+
```
```js
+import { reactive } from 'vue';
+
export default {
- data() {
- return {
+ setup() {
+ const state = reactive({
list: [],
loading: false,
finished: false,
- };
- },
- methods: {
- onLoad() {
+ });
+
+ const onLoad = () => {
// 异步更新数据
// setTimeout 仅做示例,真实场景中一般为 ajax 请求
setTimeout(() => {
for (let i = 0; i < 10; i++) {
- this.list.push(this.list.length + 1);
+ state.list.push(state.list.length + 1);
}
// 加载状态结束
- this.loading = false;
+ state.loading = false;
// 数据全部加载完成
- if (this.list.length >= 40) {
- this.finished = true;
+ if (state.list.length >= 40) {
+ state.finished = true;
}
}, 1000);
- },
+ };
+
+ return {
+ state,
+ onLoad,
+ };
},
};
```
@@ -68,30 +74,36 @@ export default {
```html
-
+
```
```js
+import { reactive } from 'vue';
+
export default {
- data() {
- return {
+ setup() {
+ const state = reactive({
list: [],
error: false,
loading: false,
- };
- },
- methods: {
- onLoad() {
+ });
+
+ const onLoad = () => {
fetchSomeThing().catch(() => {
- this.error = true;
+ state.error = true;
});
- },
+ };
+
+ return {
+ state,
+ onLoad,
+ };
},
};
```
@@ -101,55 +113,63 @@ export default {
List 组件可以与 [PullRefresh](#/zh-CN/pull-refresh) 组件结合使用,实现下拉刷新的效果。
```html
-
+
-
+
```
```js
+import { reactive } from 'vue';
+
export default {
- data() {
- return {
+ setup() {
+ const state = reactive({
list: [],
loading: false,
finished: false,
refreshing: false,
- };
- },
- methods: {
- onLoad() {
+ });
+
+ const onLoad = () => {
setTimeout(() => {
- if (this.refreshing) {
- this.list = [];
- this.refreshing = false;
+ if (state.refreshing) {
+ state.list = [];
+ state.refreshing = false;
}
for (let i = 0; i < 10; i++) {
- this.list.push(this.list.length + 1);
+ state.list.push(state.list.length + 1);
}
- this.loading = false;
+ state.loading = false;
- if (this.list.length >= 40) {
- this.finished = true;
+ if (state.list.length >= 40) {
+ state.finished = true;
}
}, 1000);
- },
- onRefresh() {
+ };
+
+ const onRefresh = () => {
// 清空列表数据
- this.finished = false;
+ state.finished = false;
// 重新加载数据
// 将 loading 设置为 true,表示处于加载状态
- this.loading = true;
- this.onLoad();
- },
+ state.loading = true;
+ onLoad();
+ };
+
+ return {
+ state,
+ onLoad,
+ onRefresh,
+ };
},
};
```
diff --git a/src/list/demo/index.vue b/src/list/demo/index.vue
index b04c24229..a8721cc2c 100644
--- a/src/list/demo/index.vue
+++ b/src/list/demo/index.vue
@@ -38,54 +38,56 @@
-