# 方法

提示

下面所有的函数都需要通过$refs来调用

# initData(<object>)

  • 手动请求第一页数据,一般不需要手动
  • 参数会透传给 API 层

# loadMore(<object>)

  • 请求下一页的数据,当无限滚动时无需调用
  • T参数会透传给 API 层

# loadBefore(<object>)

  • 请求上一页的数据
  • 参数会透传给 API 层

# refresh(<boolean>)

  • 刷新整个列表
  • 当参数设置为false,在刷新时就不会展示loading
  • 默认是 true

# retry(<boolean>)

  • 当接口异常返回时,手动调用来重试
  • 当参数设置为false,在重试时就不会展示loading
  • 默认是 true

# jump(<number>)

  • typejump时, 手动调用来跳转至指定页面

# push(<object|array>)

  • 在列表尾部追加数据

# unshift(<object|array>)

  • 在列表顶部追加数据

# insertBefore(id, value)

  • 在某个元素之前插入一条数据

# insertAfter(id, value)

  • 在某个元素之后插入一条数据

# delete(id)

  • 删除某个元素,索引是 unique-key

# search(id)

  • 搜索某个元素, 返回值是结果或null,索引是 unique-key

# reset(key, value)

  • 重写列表的任意一个字段
{
  "result": [],
  "noMore": false,
  "nothing": false,
  "loading": false,
  "error": null,
  "extra": null,
  "fetched": false,
  "page": 0,
  "total": 0
}
this.$refs.loader.reset('total', 1)

# patch(<object|array>)

  • 给数据打补丁
[
  {
    "type": "user",
    "data": {
      "id": 1,
      "count_followers": 0,
      "count_following": 0
    }
  },
  {
    "type": "user",
    "data": {
      "id": 2,
      "count_followers": 0,
      "count_following": 0
    }
  }
]
// array
this.$refs.loader.patch([
  {
    id: 1,
    count_followers: 233
  },
  {
    id: 2,
    count_followers: 666
  }
])
// object
this.$refs.loader.patch({
  1: {
    count_following: 486
  },
  2: {
    count_following: 996
  }
})

# update(id, key, value)

  • 更新某个元素的值. 如:
[
  {
    "type": "xxx",
    "data": {
      "id": 1,
      "followed": false
    }
  },
  {
    "type": "xxx",
    "data": {
      "id": 2,
      "followed": true
    }
  }
]
// unique-key:data.id
this.$refs.loader.update(2, 'data.followed', false)

# merge(id, value)

  • 合并对象到某个元素中. 如:
[
  {
    "type": "xxx",
    "data": {
      "id": 1,
      "followed": false
    }
  },
  {
    "type": "xxx",
    "data": {
      "id": 2,
      "followed": true
    }
  }
]
// unique-key:data.id
this.$refs.loader.merge(2, {
  followed: false
})