@leancloud/use-resource
TypeScript icon, indicating that this package has built-in type declarations

1.1.0 • Public • Published

useResource

A set of simple utilities for declarative async resource fetching.

npm bundle size ci status code cov

Features

  • 🧾 Declarative, intuitive and minimal core API
  • Atomic, composable enhancement hooks
  • 🔌 Protocol agnostic
  • 💪 Written in TypeScript
  • 🌲 Small size (~1KB gzipped) and tree-shaking ready

Install

npm install @leancloud/use-resource

Example

First, create a hook for fetch:

import { createResourceHook } from '@leancloud/use-resource';

async function fetchJSON<T>(...args: Parameters<typeof fetch>) {
  return (await (await fetch(...args)).json()) as T;
}

const useFetch = createResourceHook(fetchJSON);

use useFetch in the Clock component:

const Clock = () => {
  const [data, { error, loading, reload }] = useFetch<{ datetime: string }>([
    "https://worldtimeapi.org/api/timezone/etc/utc"
  ]);
  return (
    <div>
      <p>Current Time:</p>
      <p>
        {loading && "Loading..."}
        {error && error.message}
        {data && data.datetime}
      </p>
      <button onClick={reload}>Reload</button>
    </div>
  );
};

Edit use-resource-prototype

Advanced usage

Currently there is an introduction available in Chinese:

《用 React Hook 的风格加载数据》

🚧 We are working on the translation.

Readme

Keywords

none

Package Sidebar

Install

npm i @leancloud/use-resource

Weekly Downloads

13

Version

1.1.0

License

MIT

Unpacked Size

58 kB

Total Files

11

Last publish

Collaborators

  • antigloss
  • taptap-passport
  • leeyeh
  • sdjdd
  • onerain88