Skip to content

Latest commit

 

History

History
287 lines (194 loc) · 15.4 KB

CHANGELOG.zh-CN.md

File metadata and controls

287 lines (194 loc) · 15.4 KB

Changelog

All notable changes to this project will be documented in this file. See standard-version for commit guidelines.

2.0.4 (2023-10-16)

Refactor

2.0.3 (2023-06-13)

Refactor

  • 导出 definePlugin 方法 (2a03d38)

2.0.2 (2023-06-02)

Refactor

2.0.1 (2023-06-01)

变更列表

  • 使用 vue-demi 兼容 vue2 #38

  • 新增自定义缓存 getCachesetCacheclearCache

  • 开启缓存的情况下,设置了相同 cacheKey 的请求将会被缓存和复用。

  • 新增 runAsyncrefreshAsync,将返回 Promise

  • 新增 definePlugin,可以通过插件来扩展 useRequest 的功能。

  • 节流/防抖模式下可以使用 runAsync 返回正常的 Promise

  • 新增 useRequestProvider hooks,用于注入 options 配置。

  • 新增 refreshDepsAction 选项,用于自定义 refreshDeps 触发后的行为。

  • refreshDepsActionmanual=true 时,也会被 refreshDeps 的改变而触发。

  • 新增 loadingKeep

  • 移除 内部集成请求库,service 不再支持字符或对象。 迁移帮助

  • 移除 formatResult 迁移帮助

  • 移除 queryKey,即移除了并行模式 迁移帮助

  • run 不再返回 Promise 迁移帮助

  • 请求出错时,data 不再会被清空#82

  • 修改 ready 的逻辑 迁移帮助

  • ready 支持传入一个返回布尔值的函数 #166

  • dataerror 改为 shallowRef

  • usePagination 移除了 reload 方法和 reloading。如需要对应的需求,可自行实现。

  • 移除了 RequestConfig 组件 迁移帮助

  • 重构了useLoadMore,具体 API 可查看详情 API 说明

  • cacheKey 支持传入函数: cacheKey: (params?: P) => string

    useRequest(getUser,{
      cacheKey: (params?:P):string => {
        <!-- 初始化时,params 会为 undefined,需要手动判断并返回一个空字符串 -->
        if(params){
          return `user-key-${params[0].name}`
        }
        return ''
      }
    })
  • 部分options 支持响应式,如下所示

    type ReactivityOptions = {
      loadingDelay: number | Ref<number>;
      loadingKeep: number | Ref<number>;
      pollingInterval: number | Ref<number>;
      debounceInterval: number | Ref<number>;
      debounceOptions: DebounceOptions | Reactive<DebounceOptions>;
      throttleInterval: number | Ref<number>;
      throttleOptions: ThrottleOptions | Reactive<ThrottleOptions>;
      refreshOnWindowFocus: boolean | Ref<boolean>;
      refocusTimespan: number | Ref<number>;
      errorRetryCount: number | Ref<number>;
      errorRetryInterval: number | Ref<number>;
    };
  • refreshDeps支持传入 一个函数,返回一个值 、是一个 ref 、一个响应式对象 或是由以上类型的值组成的数组 #166

迁移帮助

  1. service 不再支持字符或对象。期望用户可以根据其他第三方请求库进行封装(如 axios),只要提供 Promise 即可
const getUser = userName => {
  return axios.get('api/user', {
    params: {
      name: userName,
    },
  });
};
useRequest(getUser, options);
  1. 移除 formatResult。期望用户自行在 service 中返回最终格式的数据。
const getUser = async () => {
  const results = await axios.get('api/user');
  // 在此处处理最终的数据
  return results.data;
};
  1. 移除 queryKey,即移除了并行模式。期望将每个请求动作和 UI 封装为一个组件,而不是把所有请求都放到父级。

  2. 修改 ready 的逻辑

    • manual=false 时,每次 readyfalse 变为 true 时,都会自动发起请求,会带上参数 options.defaultParams
    • manual=true 时,只要 readyfalse,则无法发起请求。
  3. run 不再返回 Promise。直接用 runAsync 替代原本的 run

  4. 可自行通过 useRequestProvider 封装 。

useLoadMore API

Options

参数 说明 类型
manual 当设置为 true 时,你需要手动触发 loadMore 或者 loadMoreAsync 才会发起请求。默认为 false boolean
ready manual=false 时,每次 readyfalse 变为 true 时,都会自动触发 refresh。当 manual=true 时,只要 readyfalse,则无法发起请求。 Ref<boolean> | () => boolean
refreshDeps 改变后自动触发 refresh,如果设置了 refreshDepsAction 则触发 refreshDepsAction WatchSource<any> | WatchSource<any>[]
refreshDepsAction refreshDeps改变后触发 () => void
debounceInterval 以防抖策略处理请求 number | Ref<number>
debounceOptions 防抖参数 {leading: false, maxWait: undefined, trailing: true}
throttleInterval 以节流策略处理请求 number | Ref<number>
throttleOptions 节流参数 {leading: false, trailing: true}
errorRetryCount 发生错误时的错误重试次数 number | Ref<number>
errorRetryInterval 发生错误时的错误重试间隔时间 number | Ref<number>
isNoMore 判断是否还有更多数据 (data?: R) => boolean
onBefore service 执行前触发 () => void
onAfter service 执行完成时触发 () => void
onSuccess service resolve 时触发 (data: R) => void
onError service reject 时触发 (error: Error) => void

Result

参数 说明 类型
data service 返回的数据,必须包含 list 数组,类型为 { list: any[], ...other } Ref<R>
dataList datalist 数组 Ref<R['list']>
loading 是否正在进行请求 Ref<boolean>
loadingMore 是否正在加载更多 Ref<boolean>
noMore 是否有更多数据,需要配合 options.isNoMore 使用 Ref<boolean>
error service 返回的错误 Error
loadMore 加载更多数据,会自动捕获异常,通过 options.onError 处理 () => void
loadMoreAsync 加载更多数据,返回 Promise,需要自行处理错误 () => Promise<R>
refresh 刷新加载第一页数据,会自动捕获异常,通过 options.onError 处理 () => void
refreshAsync 刷新加载第一页数据,返回 Promise,需要自行处理错误 () => Promise<R>
mutate 直接修改 data 的结果 (arg: (oldData: R) => R) => void | (newData: R) => void
cancel 取消请求 () => void

1.2.4 (2022-01-21)

Refactor

  • 使用 UMD 替换 IIFE modules (2f05be8)

1.2.3 (2021-10-12)

Bug Fixes

1.2.2 (2021-10-06)

Bug Fixes

  • 修复 nullish 操作符没有没转换的问题

1.2.1 (2021-10-06)

Features

  • 防抖和节流模式现在支持配置触发时机 #63 (decbbd3)

1.2.0 (2021-05-22)

Features

  • usePagination: 新增 changePagination() 方法,用来同时修改 currentpageSize #43 (c3822f0)
  • 新增 onBefore()onAfter() 钩子 #42 (135e76f)
  • 新增 reloading 用于记录 reload() 是否正在触发 #41 (5034f2c)

Performance Improvements

⚠ BREAKING CHANGES

1.1.1 (2021-04-28)

Bug Fixes

  • usePagination: defaultParams.currentdefaultParams.pageSizemanual: true 时应该能正常传递给 currentpageSize (3ca5fd7), closes #40

1.1.0 (2021-04-19)

Features

  • useLoadMore: 重构 useLoadMorerefreshcancel 方法,添加了 refreshing 用于记录是否正在刷新 #36 (7c34351)

Bug Fixes

  • 在使用 queryKey 后,根级别的 refresh, mutate, cancel 无法正常工作 #37 (66b3198)

⚠ BREAKING CHANGES

  • useLoadMore: 移除 useLoadMore 里的 mutate 方法 (b935bcd)

1.0.5 (2021-03-22)

Bug Fixes

  • onSuccessdata 类型不正确 (407ed11), closes #31
  • 错误的 import 路径 (0a31504), closes #33

1.0.4 (2021-03-08)

Bug Fixes

  • 修复 useLoadMore 类型 (0e673bf)

1.0.3 (2021-03-06)

Bug Fixes

  • 并发请求应该有单独的事件监听 (7511720)

Features

  • usePaginationuseLoadMore 支持全局配置 (8cceb1e)
  • usePagination: 添加 reload 方法用来重置分页信息 (def45e3)
  • useRequest: 添加 reload 方法用来清空 queries 列表 (b64216b)

1.0.0-beta.11 (2021-03-03)

Features

  • 添加 useLoadMore loadMore 扩展 (#28) (6f986b2)

1.0.0-beta.10 (2021-03-02)

⚠ BREAKING CHANGES

  • queriesshallowReactive 对象,修改为 reactive 对象 (8f940a4)

1.0.0-beta.9 (2021-02-26)

⚠ BREAKING CHANGES

  • usePagination: 分页扩展 不再支持 并发请求 (2c083ef)

Refactor

  • usePagination: currentpageSize 能够被修改并且能同时触发请求,意味着你可以直接使用 v-model 来绑定它们 (ea5a238)

1.0.0-beta.8 (2021-02-24)

Features

  • 添加 usePagination 分页扩展 (#26) (bc21ed2)

1.0.0-beta.7 (2021-01-11)

Feature

  • 更加智能的 errorRetryInterval 算法 (#19) 13ce153

1.0.0-beta.6 (2020-12-31)

Refactor

  • 添加 isServer 用于兼容 node 环境 4f1c797
  • 修改 cacheTime 默认值为 10 分钟 a56ecb0

1.0.0-beta.5 (2020-12-14)

Bug Fixes

1.0.0-beta.4 (2020-12-07)