0.3.0 โข Published 2 years ago
react-qwhy v0.3.0
๐ง IMPORTANT ๐ง
react-qwhy is not ready to production
โ๏ธ Table of Contents
- About the Project
 - Tech Stack
 - Features
 - Getting Started
 - Usage
 - Roadmap
 - Contributing
 - FAQ
 - License
 - Contact
 - Acknowledgements
 
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
- Esay to Use ๐ง
 - Fully Type Safety ๐
 - No Providers and all that sh^t ๐
 - Incredibly Fast ๐
 - Scalable & Timeless in Development ๐
 
Getting Started
Prerequisites
Just React Library
Installation
Install react-qwhy with npm
  npm install react-qwhyInstall react-qwhy with yarn
  yarn add react-qwhyInstall react-qwhy with pnpm
  pnpm add react-qwhyUsage
Here's how to use useQuery
import { useQuery } from "react-qwhy";
function yourComponent() {
  ...
  // return params
  const {} = useQuery(qName: string, qFn: Function)
  ...
  return ...;
}useQuery Return
| Variable | Return Type | 
|---|---|
status | number | 
isLoading | boolean | 
error | any | 
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
- working on useMutation ๐ฅ
 - X State Management ๐
 - Y Support
 
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.