ice/packages/plugin-request
ZeroLing 2d0a38ba9e Docs/add request (#670)
* chore: close announcement

* docs: add doc for request

* docs: rename title for request

* docs: add.tsx

* docs: request doc

* refactor: change request to requestConfig

* chore: change usage and documentation

* docs: optimize doc

* docs: update
2022-11-15 10:33:11 +08:00
..
src Docs/add request (#670) 2022-11-15 10:33:11 +08:00
CHANGELOG.md Plugin/request (#439) 2022-11-15 10:30:37 +08:00
README.md Plugin/request (#439) 2022-11-15 10:30:37 +08:00
package.json refactor: type dependencies (#638) 2022-11-15 10:33:00 +08:00
tsconfig.json Plugin/request (#439) 2022-11-15 10:30:37 +08:00

README.md

ICE Request Plugin

Usage

Install from npm.

$ npm i @ice/plugin-request -S

Add plugin.

import { defineConfig } from '@ice/app';
import request from '@ice/plugin-request';

export default defineConfig({
  plugins: [
    request(),
  ],
});

API

request

import { request } from 'ice';

export async function getUser(id) {
  return await request(`/api/user/${id}`);
}

useRequest

import { useEffect } from 'react';
import { useRequest } from 'ice';

export default function Home() {
  const {
    data,
    error,
    loading,
    request
  } = useRequest(service.getUser);

  useEffect(() => {
    request();
  }, []);

  if (error) {
    return <div>failed to load</div>;
  }
  if (!data || loading) {
    return <div>loading...</div>;
  }
  return (
    <h2 className={styles.title}>
      Name: {data.name} Age: {data.age}
    </h2>
  );
}