0.3.0 โ€ข Published 7 months ago

react-qwhy v0.3.0

Weekly downloads
-
License
GPL-3
Repository
github
Last release
7 months ago

๐Ÿšง IMPORTANT ๐Ÿšง

react-qwhy is not ready to production

โš›๏ธ Table of Contents

About the Project

I was and still am using react-query, but it is difficult to install and setup the environment, so I thought of building my own library, developing it, and using it in my projects, so react-qwhy appeared.

Works On

Features

  1. Esay to Use ๐Ÿง 
  2. Fully Type Safety ๐ŸŒ€
  3. No Providers and all that sh^t ๐Ÿ‘Œ
  4. Incredibly Fast ๐Ÿš€
  5. Scalable & Timeless in Development ๐Ÿ•›

Getting Started

Prerequisites

Just React Library

Installation

Install react-qwhy with npm

  npm install react-qwhy

Install react-qwhy with yarn

  yarn add react-qwhy

Install react-qwhy with pnpm

  pnpm add react-qwhy

Usage

Here's how to use useQuery

import { useQuery } from "react-qwhy";

function yourComponent() {
  ...
  // return params
  const {} = useQuery(qName: string, qFn: Function)
  ...
  return ...;
}

useQuery Return

VariableReturn Type
statusnumber
isLoadingboolean
errorany
data<ResultProps[]> or undefined

Example

import { useQuery } from "../dist/index";

// todo interface //
type TodoProps = {
  userId: number;
  id: number;
  title: string;
  completed: boolean;
};

// fetch function //
const fetchTodos = async () => {
  const req = await fetch("https://jsonplaceholder.typicode.com/todos");
  const res = await req.json();
  return res;
};

function App() {
  /*
   * Fetch todos from [ JsonPlaceholder ]
   * Pass TodoProps as [] to useQuery()
   * Pass a name & query function to useQuery()
   */

  const { data, isLoading } = useQuery<TodoProps[]>("fetch_todos", fetchTodos);

  // When fetch progress, display h1 written in it "loading..." //
  if (isLoading) return <h1>loading...</h1>;

  // return the component //
  return (
    <>
      <ul>
        {data?.map((todo) => (
          <li key={todo.id}>
            <h1>{todo.title}</h1>
            <h5>completed? {todo.completed ? "Yes" : "No"}</h5>
            <h5>{todo.id}</h5>
            <span>{todo.userId}</span>
          </li>
        ))}
      </ul>
    </>
  );
}

export default App;

Roadmap

Contributing

Contributions are always welcome! ๐Ÿ˜‡

See contributing.md for ways to get started.

FAQ

  • it's work on react-native?

    • Yes
  • why I use this instead of react-query?

    • Use whatever you want. ๐Ÿคท

License

Distributed under the no License. See LICENSE.txt for more information.

Contact

Ali Elmalki - @npm - alielmalki.developer@gmail.com

Project Link: https://github.com/aliel0malki/react-qwhy

Acknowledgements

useful resources and libraries we have used in react-qwhy.

0.3.0

7 months ago

0.2.9

7 months ago

0.2.8

7 months ago

0.2.2

7 months ago

0.2.0

7 months ago