1.1.0 โ€ข Published 4 years ago

@leancloud/use-resource v1.1.0

Weekly downloads
18
License
MIT
Repository
github
Last release
4 years ago

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.