Giter Site home page Giter Site logo

react-usefetch's Introduction

react-useFetch

React hooks for the Fetch API

Inspired by the amazing @apollo/client react hooks.

Install

npm install --save @itsjustcon/react-usefetch

Usage

useFetch()

The useFetch() method is most common way to use this package.

const { useFetch } = require('@itsjustcon/react-usefetch');

function MyComponent() {
    const { loading: isLoadingTodos, body: todos } = useFetch('https://jsonplaceholder.typicode.com/todos', {
        mode: 'cors',
        cache: 'no-cache',
    });
    return (
        <div>
            {isLoadingTodos ? (
                <LoadingSpinner />
            ) : (
                <div>
                    {todos.map((todo) =>
                        <div key={todo.id}>
                            {todo.title}
                        </div>
                    )}
                </div>
            )}
        </div>
    );
}

useLazyFetch

The useLazyFetch() method allows you to delay the execution of a fetch. This is commonly used for things like fetching after a button is pressed.

const { useLazyFetch } = require('@itsjustcon/react-usefetch');

function MyComponent() {
    const [fetchTodos, { loading: isLoadingTodos, body: todos }] = useLazyFetch('https://jsonplaceholder.typicode.com/todos', {
        mode: 'cors',
        cache: 'no-cache',
    });
    return (
        <div>
            <button
                onClick={(event) => {
                    event.preventDefault();
                    fetchTodos();
                }}
                disabled={isLoadingTodos}
            >
                Fetch Todos
            </button>
            {isLoadingTodos ? (
                <LoadingSpinner />
            ) : todos ? (
                <div>
                    {todos.map((todo) =>
                        <div key={todo.id}>
                            {todo.title}
                        </div>
                    )}
                </div>
            ) : null}
        </div>
    );
}

API

Detailed documentation coming soon

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.