# 简介
# 什么是 vue-mixin-store?
# 传统的网页包含以下三种元素:
- 表单
- 登录、注册、修改信息
- 列表
- 图片轮播
- 信息流
- 评论列表
- 推荐列表
- UI原件
- 头像裁剪组件
- 数据展示组件
TIP
对于不同的产品,UI原件和表单都是难以统一的,只能抽象出最基本的组件,而对于列表却不是这样
# 我们对列表进行拆分,可以分为以下两层:
- 数据层
- 数据获取的 API
- 数据获取的参数
- 渲染层
- 列表的头、尾
- 列表中每个组件
TIP
对于不同的产品,渲染层的差异比较大,而数据层的模式却是相同的
# 我们对数据层进行深入分析:
# 列表的数据加载都有以下模式:
- 首次加载
- 请求更多(向【上/前】或向【下/后】)
- 刷新列表
# 每个列表都应该存在以下状态:
- loading(加载中)
- error(出错了)
- nothing(没有内容)
- noMore(没有更多)
- fetched(是否已发送过请求)
TIP
每次都要去手动维护这些状态是很麻烦的,不维护体验不好,维护也可能维护错导致 bug
# 接口的请求方式有以下场景:
- 静态列表
- 滚动翻页,使用 page + count 分页
- 跳转翻页,使用 page + count 分页
- 动态有序列表
- 有起点,使用 lastId 分页
- 无起点,使用 sinceId + is_up 分页
- 动态无序列表
- 使用 seenIds 分页
# vue-mixin-store 就是对列表的数据层做的一层封装,它包括两部分:
- FlowLoader
- 一个列表加载的 Vue 组件,封装了数据源、列表状态和加载方法,以及一些其他数据变更方法
- FlowStore
- 一个封装好的 vuex 模块,维护了列表的数据和状态
快速上手 →