createSingleLoading

这个 Hook 自v1.4.0版本起被标记为弃用。已被迁移至 @shined/reactive。

这是一个 Util,提供一种通过多个 Hooks 或 loading 实例管理单个(全局)加载状态的方法,底层使用了 Reactive

TIP

使用此 Util 需要安装 @shined/reactive

演示

源码
Loading:
false

用法

请查看 API。

源码

点击下方链接跳转 GitHub 查看源代码。

API

import { create } from '@shined/reactive' const pageLoading = createSingleLoading({ create }) const { set, get, bind, useLoading, useAsyncFn } = pageLoading

选项 Options

export interface CreateSingleLoadingOptions { /** * 是否在错误时设置为 false * * @defaultValue true 默认值为 true */ resetOnError?: boolean /** * 初始加载状态 * * @defaultValue false 默认值为 false */ initialState?: boolean }

返回值

export interface UseAsyncFnExtendReturns<T extends AnyFunc> extends UseAsyncFnReturns<T> { /** * 设置加载状态 * * @param {boolean} value - `boolean`, 要设置的加载值 * @returns {void} `void` */ setLoading: (value: boolean) => void } export interface CreateSingleLoadingReturns { /** * 一个在 React 中使用的 Hook,用于绑定具有加载状态的异步函数 * * @param {AnyFunc} asyncFn - `AnyFunc`, 要绑定的异步函数,见 {@link AnyFunc} * @returns {UseAsyncFnExtendReturns}{@link UseAsyncFnExtendReturns} */ useAsyncFn: <T extends AnyFunc>(asyncFn: T) => UseAsyncFnExtendReturns<T> /** * 一个在 React 中使用的 Hook,用于使用加载状态 * * @returns {boolean} `boolean`, 加载状态 */ useLoading(): boolean /** * 通过 loading 实例设置加载状态 * * @param {boolean} value - `boolean`, 要设置的值 * @returns {void} `void` */ set: (value: boolean) => void /** * 通过 loading 实例获取加载状态 * * @returns {boolean} `boolean`, 加载状态 */ get(): boolean /** * 将 loading 的加载状态绑定到异步函数中 * * @param {AnyFunc} asyncFn - `AnyFunc`, 要绑定的异步函数,见 {@link AnyFunc} * @returns {AnyFunc} `AnyFunc`, 与 `asyncFn` 参数相同,见 {@link AnyFunc} */ bind: <T extends AnyFunc>(asyncFn: T) => T }