├── LICENSE └── README.md /LICENSE: -------------------------------------------------------------------------------- 1 | Creative Commons Legal Code 2 | 3 | CC0 1.0 Universal 4 | 5 | CREATIVE COMMONS CORPORATION IS NOT A LAW FIRM AND DOES NOT PROVIDE 6 | LEGAL SERVICES. DISTRIBUTION OF THIS DOCUMENT DOES NOT CREATE AN 7 | ATTORNEY-CLIENT RELATIONSHIP. CREATIVE COMMONS PROVIDES THIS 8 | INFORMATION ON AN "AS-IS" BASIS. CREATIVE COMMONS MAKES NO WARRANTIES 9 | REGARDING THE USE OF THIS DOCUMENT OR THE INFORMATION OR WORKS 10 | PROVIDED HEREUNDER, AND DISCLAIMS LIABILITY FOR DAMAGES RESULTING FROM 11 | THE USE OF THIS DOCUMENT OR THE INFORMATION OR WORKS PROVIDED 12 | HEREUNDER. 13 | 14 | Statement of Purpose 15 | 16 | The laws of most jurisdictions throughout the world automatically confer 17 | exclusive Copyright and Related Rights (defined below) upon the creator 18 | and subsequent owner(s) (each and all, an "owner") of an original work of 19 | authorship and/or a database (each, a "Work"). 20 | 21 | Certain owners wish to permanently relinquish those rights to a Work for 22 | the purpose of contributing to a commons of creative, cultural and 23 | scientific works ("Commons") that the public can reliably and without fear 24 | of later claims of infringement build upon, modify, incorporate in other 25 | works, reuse and redistribute as freely as possible in any form whatsoever 26 | and for any purposes, including without limitation commercial purposes. 27 | These owners may contribute to the Commons to promote the ideal of a free 28 | culture and the further production of creative, cultural and scientific 29 | works, or to gain reputation or greater distribution for their Work in 30 | part through the use and efforts of others. 31 | 32 | For these and/or other purposes and motivations, and without any 33 | expectation of additional consideration or compensation, the person 34 | associating CC0 with a Work (the "Affirmer"), to the extent that he or she 35 | is an owner of Copyright and Related Rights in the Work, voluntarily 36 | elects to apply CC0 to the Work and publicly distribute the Work under its 37 | terms, with knowledge of his or her Copyright and Related Rights in the 38 | Work and the meaning and intended legal effect of CC0 on those rights. 39 | 40 | 1. Copyright and Related Rights. A Work made available under CC0 may be 41 | protected by copyright and related or neighboring rights ("Copyright and 42 | Related Rights"). Copyright and Related Rights include, but are not 43 | limited to, the following: 44 | 45 | i. the right to reproduce, adapt, distribute, perform, display, 46 | communicate, and translate a Work; 47 | ii. moral rights retained by the original author(s) and/or performer(s); 48 | iii. publicity and privacy rights pertaining to a person's image or 49 | likeness depicted in a Work; 50 | iv. rights protecting against unfair competition in regards to a Work, 51 | subject to the limitations in paragraph 4(a), below; 52 | v. rights protecting the extraction, dissemination, use and reuse of data 53 | in a Work; 54 | vi. database rights (such as those arising under Directive 96/9/EC of the 55 | European Parliament and of the Council of 11 March 1996 on the legal 56 | protection of databases, and under any national implementation 57 | thereof, including any amended or successor version of such 58 | directive); and 59 | vii. other similar, equivalent or corresponding rights throughout the 60 | world based on applicable law or treaty, and any national 61 | implementations thereof. 62 | 63 | 2. Waiver. To the greatest extent permitted by, but not in contravention 64 | of, applicable law, Affirmer hereby overtly, fully, permanently, 65 | irrevocably and unconditionally waives, abandons, and surrenders all of 66 | Affirmer's Copyright and Related Rights and associated claims and causes 67 | of action, whether now known or unknown (including existing as well as 68 | future claims and causes of action), in the Work (i) in all territories 69 | worldwide, (ii) for the maximum duration provided by applicable law or 70 | treaty (including future time extensions), (iii) in any current or future 71 | medium and for any number of copies, and (iv) for any purpose whatsoever, 72 | including without limitation commercial, advertising or promotional 73 | purposes (the "Waiver"). Affirmer makes the Waiver for the benefit of each 74 | member of the public at large and to the detriment of Affirmer's heirs and 75 | successors, fully intending that such Waiver shall not be subject to 76 | revocation, rescission, cancellation, termination, or any other legal or 77 | equitable action to disrupt the quiet enjoyment of the Work by the public 78 | as contemplated by Affirmer's express Statement of Purpose. 79 | 80 | 3. Public License Fallback. Should any part of the Waiver for any reason 81 | be judged legally invalid or ineffective under applicable law, then the 82 | Waiver shall be preserved to the maximum extent permitted taking into 83 | account Affirmer's express Statement of Purpose. In addition, to the 84 | extent the Waiver is so judged Affirmer hereby grants to each affected 85 | person a royalty-free, non transferable, non sublicensable, non exclusive, 86 | irrevocable and unconditional license to exercise Affirmer's Copyright and 87 | Related Rights in the Work (i) in all territories worldwide, (ii) for the 88 | maximum duration provided by applicable law or treaty (including future 89 | time extensions), (iii) in any current or future medium and for any number 90 | of copies, and (iv) for any purpose whatsoever, including without 91 | limitation commercial, advertising or promotional purposes (the 92 | "License"). The License shall be deemed effective as of the date CC0 was 93 | applied by Affirmer to the Work. Should any part of the License for any 94 | reason be judged legally invalid or ineffective under applicable law, such 95 | partial invalidity or ineffectiveness shall not invalidate the remainder 96 | of the License, and in such case Affirmer hereby affirms that he or she 97 | will not (i) exercise any of his or her remaining Copyright and Related 98 | Rights in the Work or (ii) assert any associated claims and causes of 99 | action with respect to the Work, in either case contrary to Affirmer's 100 | express Statement of Purpose. 101 | 102 | 4. Limitations and Disclaimers. 103 | 104 | a. No trademark or patent rights held by Affirmer are waived, abandoned, 105 | surrendered, licensed or otherwise affected by this document. 106 | b. Affirmer offers the Work as-is and makes no representations or 107 | warranties of any kind concerning the Work, express, implied, 108 | statutory or otherwise, including without limitation warranties of 109 | title, merchantability, fitness for a particular purpose, non 110 | infringement, or the absence of latent or other defects, accuracy, or 111 | the present or absence of errors, whether or not discoverable, all to 112 | the greatest extent permissible under applicable law. 113 | c. Affirmer disclaims responsibility for clearing rights of other persons 114 | that may apply to the Work or any use thereof, including without 115 | limitation any person's Copyright and Related Rights in the Work. 116 | Further, Affirmer disclaims responsibility for obtaining any necessary 117 | consents, permissions or other rights required for any use of the 118 | Work. 119 | d. Affirmer understands and acknowledges that Creative Commons is not a 120 | party to this document and has no duty or obligation with respect to 121 | this CC0 or use of the Work. 122 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # awesome-react-hooks [![Awesome](https://awesome.re/badge.svg)](https://awesome.re) 2 | 3 | > Awesome React Hooks Resources 4 | 5 | ## Documentation 6 | 7 | - [React Hooks Docs](https://reactjs.org/docs/hooks-intro.html) 8 | 9 | ## Discussions 10 | 11 | - [React Hooks RFC](https://github.com/reactjs/rfcs/pull/68) 12 | 13 | ## Tutorials 14 | 15 | - ["Making Sense of React Hooks" by Dan Abramov](https://medium.com/@dan_abramov/making-sense-of-react-hooks-fdbde8803889) 16 | - ["From React.Component to hooks" by Octave Raimbault](https://medium.com/@dispix/from-react-component-to-hooks-b50241334365) 17 | - ["React Hooks: What’s going to happen to my tests?" by Kent C. Dodds](https://blog.kentcdodds.com/react-hooks-whats-going-to-happen-to-my-tests-df4c2b4d67b7) 18 | - ["State Management with React Hooks - No Redux or Context API" by André Gardi](https://medium.com/javascript-in-plain-english/state-management-with-react-hooks-no-redux-or-context-api-8b3035ceecf8) 19 | - ["How to Fetch Data with React Hooks?" by Robin Wieruch](https://www.robinwieruch.de/react-hooks-fetch-data/) 20 | - [Primer on React Hooks](https://testdriven.io/blog/react-hooks-primer/) 21 | - [React Hooks - A deeper dive featuring useContext and useReducer](https://testdriven.io/blog/react-hooks-advanced/) 22 | - ["Using Custom React Hooks to Simplify Forms" by James King](https://upmostly.com/tutorials/using-custom-react-hooks-simplify-forms) 23 | - [Testing of a Custom React Hook for Fetching Data with Axios](https://dev.to/doppelmutzi/testing-of-a-custom-react-hook-for-fetching-data-with-axios-4gf1) 24 | - [The Guide to Learning React Hooks (Examples & Tutorials) by Eric Bishard](https://www.telerik.com/kendo-react-ui/react-hooks-guide/) 25 | - ["Sanely Testing React Hooks" by Dave Cooper](https://dev.to/grug/sanely-testing-react-hooks-2l1j) 26 | - [React by Example: Hooks](https://reactbyexample.github.io/hooks) 27 | 28 | ## Videos 29 | 30 | - [🎬 ReactConf 2018: React Today and Tomorrow by Sophie Alpert and Dan Abramov](https://youtu.be/V-QO-KO90iQ) Official announcement and first demo. 31 | - [🎬 ReactConf 2018: 90% Cleaner React by Ryan Florence](https://youtu.be/wXLf18DsV-I) 32 | - [🎬 React Hooks: A Complete Introduction by Harry Wolff](https://youtu.be/jd8R0a2Ur8Q) 33 | - [🎬 React Hooks playlist by Ben Awad](https://www.youtube.com/playlist?list=PLN3n1USn4xllL1OrVr-A4oq7SG-cS9MOQ) 34 | - [🎬 React Hooks playlist by Josh Ribakoff](https://www.youtube.com/playlist?list=PLj2oFNVaxfJ-AcPo191jz09g-v9CLRfCg) 35 | - [🎬 React Hooks playlist by Michael Chan](https://www.youtube.com/playlist?list=PLnc_NxpmOxaNf_mTUx1BgoP5POXwSAu-g) 36 | - [🎬 Custom Hooks in React by Tanner Linsley](https://www.youtube.com/watch?v=J-g9ZJha8FE) 37 | 38 | ## Podcasts 39 | 40 | - [React Hooks - Syntax (Nov 14th, 2018)](https://syntax.fm/show/092/react-hooks) 41 | - [React Hooks 1 Year Later - Syntax (Mar 18, 2020)](https://syntax.fm/show/232/react-hooks-1-year-later) 42 | - [Why should I use React Hooks? - Syntax (Dec 7th, 2020)](https://syntax.fm/show/307/hasty-treat-why-should-i-use-react-hooks) 43 | 44 | ## Tools 45 | 46 | - [`eslint-plugin-react-hooks`](https://www.npmjs.com/package/eslint-plugin-react-hooks) 47 | - [`hooks.macro`](https://www.npmjs.com/package/hooks.macro) Babel Macros for automatic memoization invalidation 48 | - [CodeSandbox Starter Kit](https://codesandbox.io/s/7y6o4282lq) 49 | - [React Hooks Snippets for VS Code](https://marketplace.visualstudio.com/items?itemName=antmdvs.vscode-react-hooks-snippets) 50 | - [`hook-into-props`](https://github.com/juliettepretot/hook-into-props/tree/1e069a6c01c2a783100f2fea7709f56d8166a97e) Helper to build HOCs using hooks. Useful for using hooks with class components. 51 | - [`react-universal-hooks`](https://github.com/salvoravida/react-universal-hooks) React Universal Hooks: just use****** everywhere, Functional or Class Components 52 | - [Jooks](https://github.com/antoinejaussoin/jooks) Unit-test your custom hooks by mocking React's Hooks API (useState, etc.) 53 | - [`react-hooks-testing-library`](https://react-hooks-testing-library.com/) Library to create unit tests for custom React hooks. 54 | 55 | ## Catalogs 56 | 57 | - [@react-hookz/web](https://github.com/react-hookz/web) - A library of general-purpose React hooks built with care and SSR compatibility in mind. 58 | - [ahooks](https://github.com/alibaba/hooks) A collection of React Hooks specifically aiming at enterprise applications. 59 | - [beautiful-react-hooks(🔥)](https://beautifulinteractions.github.io/beautiful-react-hooks/) A collection of hooks to speed-up your components and custom hooks development. 60 | - [Captain hook](https://github.com/stevenpersia/captain-hook) Modest list of hooks. 61 | - [crooks](https://github.com/chrisjpatty/crooks) A collection of unique React Hooks. 62 | - [hooks-by-example](https://github.com/latviancoder/hooks-by-example) Collection of beginner-friendly real world examples of hook usage. 63 | - [Hooks.guide](https://hooks-guide.netlify.app/) Collection of React hooks curated by the community. 64 | - [react-recipes](https://github.com/craig1123/react-recipes) 👩‍🍳 Collection of essential hook recipes 🥘 65 | - [Searchable Collection of React Hooks](https://nikgraf.github.io/react-hooks/) 66 | - [Sunflower(🌻)](https://github.com/ant-design/sunflower) Collection of React Hooks returning components of antd. 67 | - [useHooks(🐠)](https://usehooks.com/) One new React Hook recipe every day. 68 | - [Use Hooks](https://use-hooks.org/) A collection of reusable React Hooks. 69 | 70 | ## Packages 71 | 72 | - [`@21kb/react-hooks`](https://github.com/21kb/react-hooks) A set of React Hooks to get _hooked_ on. 73 | - [`@d2k/react-devto`](https://github.com/bdbch/react-devto) React hook for Dev.to API requests 74 | - [`@d2k/react-github`](https://github.com/bdbch/react-github) React hook for Github API requests 75 | - [`@d2k/react-localstorage`](https://github.com/bdbch/react-localstorage) React hook that handles updating and clearing localstorage values while keeping them in sync with your components. 76 | - [`@elgorditosalsero/react-gtm-hook`](https://github.com/elgorditosalsero/react-gtm-hook) React hook for handle easily the Google Tag Manager. 77 | - [`@hookstate/core`](https://github.com/avkonst/hookstate) Modern, very fast and extendable state management for React. 78 | - [`@jzone/react-request-hook`](https://github.com/zhixiaoqiang/react-request-hook) 🐶React hook for custom request,compatible with various lib, support redux 79 | - [`@kevinwolf/formal`](https://github.com/kevinwolfcr/formal) Elegant form management primitives for the react hooks era. 80 | - [`@koale/useworker`](https://github.com/alewin/useWorker) ⚙️ Running heavy task in background using web workers, without blocking the UI 81 | - [`@marvelsq/use-properties-hook`](https://github.com/MarvelSQ/use-properties-hook) Instance functions inside FunctionComponent like `class-properties` and equal in `ShallowCompare` 82 | - [`@rehooks/component-size`](https://github.com/rehooks/component-size) React hook for determining the size of a component. 83 | - [`@rehooks/document-title`](https://github.com/rehooks/document-title) React hook for updating the document-title. 84 | - [`@rehooks/document-visibility`](https://github.com/rehooks/document-visibility) React hook for subscribing to document visibility. 85 | - [`@rehooks/input-value`](https://github.com/rehooks/input-value) React hook for creating input values. 86 | - [`@rehooks/local-storage`](https://github.com/rehooks/local-storage) React hook which syncs `localStorage[key]` with the comp. 87 | - [`@rehooks/network-status`](https://github.com/rehooks/network-status) React hook for getting network-status. 88 | - [`@rehooks/online-status`](https://github.com/rehooks/online-status) React Hook for Online status. 89 | - [`@rehooks/window-scroll-position`](https://github.com/rehooks/window-scroll-position) React hook for getting window `x` and `y` position. 90 | - [`@rehooks/window-size`](https://github.com/rehooks/window-size) React hook for subscribing to window size. 91 | - [`@rekindle/use-request`](https://github.com/react-rekindle/use-request) 🤖 React hook for making request. 92 | - [`@rkrupinski/use-state-machine`](https://github.com/rkrupinski/use-state-machine) A finite state machine hook. 93 | - [`@staltz/use-profunctor-state`](https://github.com/staltz/use-profunctor-state) React Hook for state management with Profunctor Optics 94 | - [`@webscopeio/react-health-check`](https://github.com/webscopeio/react-health-check) 🏥 Lightweight React hook for checking health of API services. 95 | - [`@wellyshen/use-web-animations`](https://github.com/wellyshen/use-web-animations) 🍿 React hook for highly-performant and manipulable animations using Web Animations API. 96 | - [`@withvoid/melting-pot`](https://github.com/withvoid/melting-pot) React hook utility library. 97 | - [`ahooks/usetable`](https://github.com/ahooksjs/useTable) A Progressive Solution for Query Table Scene. 98 | - [`concent`](https://github.com/concentjs/concent) State management that tailored for react, it is simple, predictable, progressive and efficient. 99 | - [`constate`](https://github.com/diegohaz/constate) Transform your local state into global state using `useContextState` and `useContextReducer`. 100 | - [`conuse`](https://github.com/fodau/conuse) Share Hook with Context 101 | - [`easy-peasy`](https://github.com/ctrlplusb/easy-peasy) Easy peasy global state for React. 102 | - [`fetch-suspense`](https://github.com/CharlesStover/fetch-suspense) React hook for the Fetch API with support for Suspense. 103 | - [`graphql-hooks`](https://github.com/nearform/graphql-hooks) Minimal hooks-first GraphQL client. 104 | - [`mobx-react-lite`](https://github.com/mobxjs/mobx-react-lite) Lightweight React bindings for MobX based on experimental React hooks. 105 | - [`modali`](https://github.com/upmostly/modali) A delightful modal dialog component for React, built from the ground up to support React Hooks. 106 | - [`moment-hooks`](https://github.com/momentechnologies/moment-hooks) A library containing generic react hooks 107 | - [`nice-hooks`](https://github.com/daniel-dx/nice-hooks) 🍹 A lot of nice hooks to make react hooks easier to use ( useState callback / life cycle / instance variable) 108 | - [`promise-hook`](https://github.com/aiven715/promise-hook) React hook for simplifying Promise based data fetching. 109 | - [`reactive-react-redux`](https://github.com/dai-shi/reactive-react-redux) React Redux binding with React Hooks and Proxy 110 | - [`react-async-hook`](https://github.com/slorber/react-async-hook) React hook to fetch ad-hoc data into your React components. 111 | - [`react-cached-callback`](https://github.com/megazazik/react-cached-callback) React hooks for caching many callbacks by key, for example, in loops. 112 | - [`react-context-refs`](https://github.com/megazazik/react-context-refs) React hooks for getting refs of elements via context. 113 | - [`react-cookie`](https://github.com/reactivestack/cookies) React hooks for universal cookies. 114 | - [`react-cool-dimensions`](https://github.com/wellyshen/react-cool-dimensions) 📏 React hook to measure an element's size and handle responsive components. 115 | - [`react-cool-form`](https://github.com/wellyshen/react-cool-form) 📋 React hooks for forms state and validation, less code more performant. 116 | - [`react-cool-inview`](https://github.com/wellyshen/react-cool-onclickoutside) 🖥️ React hook to monitor an element enters or leaves the viewport (or another element). 117 | - [`react-cool-onclickoutside`](https://github.com/wellyshen/react-cool-onclickoutside) 🖱 React hook to listen for clicks outside of the component(s). 118 | - [`react-cool-portal`](https://github.com/wellyshen/react-cool-portal) 🍒 React hook for Portals, which renders modals, dropdowns, tooltips etc. to or else. 119 | - [`react-cool-virtual`](https://github.com/wellyshen/react-cool-virtual) ♻️ A tiny React hook for rendering large datasets like a breeze. 120 | - [`react-countdown-hook`](https://github.com/alexkhismatulin/react-use-count-down) Dead simple yet powerful countdown hook for React. Powered by `requestAnimationFrame`. 121 | - [`react-darkreader`](https://github.com/Turkyden/react-darkreader) 🌓 A React Hook for adding a dark / night mode to your site inspired by darkreader. 122 | - [`react-declare-form`](https://github.com/andy9775/react-declare-form) React hook based declarative form library. 123 | - [`react-deep-hooks`](https://github.com/codeshake/react-deep-hooks) React hooks for non-primitive dependencies. 124 | - [`react-dom-status-hook`](https://github.com/yeskunall/react-dom-status-hook) React hook for subscribing to the `DOMContentLoaded` event. 125 | - [`react-enhanced-reducer-hook`](https://github.com/shiningjason/react-enhanced-reducer-hook) An alternative to `useReducer` that accepts middlewares. 126 | - [`react-fetch-hook`](https://github.com/ilyalesik/react-fetch-hook) React hook for conveniently use Fetch API. 127 | - [`react-firebase-hooks`](https://github.com/csfrequency/react-firebase-hooks) A collection of hooks for use with [Firebase](https://firebase.google.com). 128 | - [`react-form-stateful`](https://github.com/ckedwards/react-form-stateful) Form library. Exposes dispatch to allow for the library to be extended through side effects. 129 | - [`react-hanger`](https://github.com/kitze/react-hanger) A small collection of utility hooks. 130 | - [`react-hook-mighty-mouse`](https://github.com/mkosir/react-hook-mighty-mouse) React hook that tracks mouse events on selected element 🐭 131 | - [`react-hook-mousetrap`](https://www.npmjs.com/package/react-hook-mousetrap) A hook to trigger callbacks on keys or keys combos, powered by mousetrap. 132 | - [`react-hookedup`](https://github.com/zakariaharti/react-hookedup) A collection of useful React hooks. 133 | - [`react-hook-form`](https://github.com/bluebill1049/react-hook-form) Form validation without the hassle. 134 | - [`react-hook-layout`](https://github.com/ytiurin/react-hook-layout) Layout management in React. 135 | - [`react-hooks-async`](https://github.com/dai-shi/react-hooks-async) React custom hooks for async functions with abortability and composability 136 | - [`react-hooks-global-state`](https://github.com/dai-shi/react-hooks-global-state) A simple global state management. 137 | - [`react-hooks-image-size`](https://github.com/use-hooks/react-hooks-image-size) Hook to get natural image size from url. 138 | - [`react-hooks-lib`](https://github.com/beizhedenglong/react-hooks-lib) A set of reusable react hooks. 139 | - [`react-hooks-svgdrawing`](https://github.com/kmkzt/react-hooks-svgdrawing) A hooks to svg drawing. 140 | - [`react-hooks-use-modal`](https://github.com/shibe97/react-hooks-use-modal) A hook to open the modal easily. 141 | - [`react-hooks-visible`](https://github.com/kmkzt/react-hooks-visible) A hook to element visibility. Uses the intersection observer API. 142 | - [`react-hooks-worker`](https://github.com/dai-shi/react-hooks-worker) React custom hooks for web workers 143 | - [`react-hotkey-hook`](https://github.com/JohannesKlauss/react-hotkeys-hook) React hook for hotkeys. 144 | - [`react-i18next`](https://react.i18next.com/latest/usetranslation-hook) Internationalization for react done right. 145 | - [`react-immer-hooks`](https://github.com/sin/react-immer-hooks) useState and useReducer using Immer to update state. 146 | - [`react-indicative-hooks`](https://github.com/marceloadsj/react-indicative-hooks) Hooks wrapping a data validation library called [Indicative](http://indicative.adonisjs.com) 147 | - [`react-intersection-visible-hook`](https://github.com/AvraamMavridis/react-intersection-visible-hook) React hook to track the visibility of a functional component. 148 | - [`react-media-hook`](https://github.com/lessmess-agency/react-media-hook) React hook for Media Queries. 149 | - [`react-metatags-hook`](https://github.com/lordgiotto/react-metatags-hook) React Hook to manage html meta tags. 150 | - [`react-native-react-bridge`](https://github.com/inokawa/react-native-react-bridge) A React Native plugin to run React and handle communication between them. 151 | - [`react-optimistic-ui-hook`](https://github.com/mamal72/react-optimistic-ui-hook) ⚛️ Minimal "optimistic UI" pattern implementation with a React hook 152 | - [`react-page-name`](https://github.com/RyanFitzgerald/react-page-name) React Hook for managing the page title. 153 | - [`react-peer-data`](https://github.com/vardius/react-peer-data) React wrapper for PeerData library for files, media streaming/sharing using WebRTC. 154 | - [`react-pirate`](https://github.com/dispix/react-pirate) React lifecycle and utilities hooks. 155 | - [`react-powerhooks`](https://github.com/kalcifer/react-powerhooks) Hooks api for react-powerplug components. 156 | - [`react-promiseful`](https://github.com/moxystudio/react-promiseful) A React component and hook to render children conditionally based on a promise status. 157 | - [`react-query`](https://github.com/tannerlinsley/react-query) Hooks for fetching, caching and updating asynchronous data in React. 158 | - [`react-recaptcha-hook`](https://github.com/hupe1980/react-recaptcha-hook) React hook for google-recaptcha v3 159 | - [`react-recipes`](https://github.com/craig1123/react-recipes) 👩‍🍳 Collection of essential hook recipes 🥘 160 | - [`react-request-hook`](https://github.com/schettino/react-request-hook) Managed, cancelable and safe-oriented api requests. 161 | - [`react-responsive`](https://github.com/contra/react-responsive) React media query module. 162 | - [`react-rocketjump`](https://github.com/inmagik/react-rocketjump) Manage state and side effects like a breeze. 163 | - [`react-screen-wake-lock`](https://github.com/jorisre/react-screen-wake-lock) React implementation of the Screen Wake Lock API. It provides a way to prevent devices from dimming or locking the screen when an application needs to keep running 164 | - [`react-script-hook`](https://github.com/hupe1980/react-script-hook) React hook to dynamically load an external script and know when its loaded 165 | - [`react-selector-hooks`](https://github.com/Andarist/react-selector-hooks) Collection of hook-based memoized selector factories for declarations outside of render. 166 | - [`react-speech-kit`](https://github.com/MikeyParton/react-speech-kit) Hooks for browser Speech Recognition and Speech Synthesis. 167 | - [`react-state-patterns`](https://github.com/mcclayton/react-state-patterns) Utility package for creating reusable implementations of React state provider patterns from hooks. 168 | - [`react-swipeable`](https://github.com/dogfessional/react-swipeable) React swipe event handler hook. 169 | - [`react-tracked`](https://github.com/dai-shi/react-tracked) Simple and fast global state with React Context. Eliminate unnecessary re-renders without hassle. 170 | - [`react-uniformed`](https://github.com/j-a-y-h/react-uniformed) 🚀 Declarative React forms using hooks. 171 | - [`react-use-api`](https://github.com/RyanRoll/react-use-api) Async HTTP request data for axios. Designed for diverse UI states, SSR and data pre-caching. 172 | - [`react-use-browser`](https://github.com/crossroads-loyalty-solutions/react-use-browser) A hook enabling client side hydration of Server-Side-Rendered components when server-produced markup needs to differ from the final client application markup. 173 | - [`react-use-calendar`](https://github.com/gregnb/react-use-calendar) A hook for implementing a calendar with events. 174 | - [`react-use-clipboard`](https://github.com/danoc/react-use-clipboard) A hook that copies text to a user's clipboard. 175 | - [`react-use-d3`](https://github.com/inokawa/react-use-d3) A React hook to use D3. 176 | - [`react-use-data-loader`](https://github.com/smmoosavi/react-use-data-loader) React hook for loading data 177 | - [`react-use-fetch-factory`](https://github.com/JohannesKlauss/react-use-fetch-factory) React hook that takes care of fetching and selecting data with redux. 178 | - [`react-use-fetch-with-redux`](https://github.com/grug/react-use-fetch-with-redux/) React hook that caches API requests that works with redux. 179 | - [`react-use-form-state`](https://github.com/wsmd/react-use-form-state) React hook for managing form and inputs state. 180 | - [`react-use-id-hook`](https://github.com/Yaska/react-use-id-hook) React hook for generating SSR-safe unique id strings. 181 | - [`react-use-idb`](https://github.com/kigiri/react-use-idb) React hook for storing value in the browser using `indexDB`. 182 | - [`react-use-infinite-loader`](https://github.com/CurationCorp/react-use-infinite-loader) :infinity: :page_with_curl: :hourglass_flowing_sand: Super lightweight infinite loading (scroll) hook for React apps 183 | - [`react-use-input`](https://github.com/robcalcroft/react-use-input) 🎣 A hook whose setter can be directly given to HTML inputs 184 | - [`react-use-lazy-load-image`](https://github.com/robcalcroft/react-use-lazy-load-image) :sunrise: :zap: Add image lazy loading to your React app with ease 185 | - [`react-use-message-bar`](https://github.com/intercaetera/react-use-message-bar) A simple React hook for message bars. 186 | - [`react-use-modal`](https://github.com/wowlusitong/react-use-modal) React hook for manage modal. 187 | - [`react-use-path`](https://github.com/zhangkaiyulw/react-use-path) The tiniest hook style react router. 188 | - [`react-use-scroll-position`](https://github.com/neo/react-use-scroll-position) React hook for using the scroll position. 189 | - [`react-use-trigger`](https://github.com/ilyalesik/react-use-trigger) React hook for trigger effect from any place of code 190 | - [`react-use-watch`](https://github.com/iam-frankqiu/react-use-watch) A React hook about triggers once only when dependencies have changed. 191 | - [`react-use-wavelet`](https://github.com/perlin-network/react-use-wavelet) React hooks for connecting to the Wavelet smart-contract platform 192 | - [`react-use`](https://github.com/streamich/react-use) Collection of essential hooks. 193 | - [`react-useFormless`](https://github.com/GeDiez/react-use-formless) React hook to handle forms state. 194 | - [`react-usemiddleware`](https://github.com/venil7/react-usemiddleware) React hook for using existing Redux middlewares (like thunk or saga) with `useReducer`. 195 | - [`react-useportal`](https://github.com/alex-cory/react-useportal) 🌀 usePortal, React hook for Portals 196 | - [`react-user-media`](https://github.com/vardius/react-user-media) React wrapper for `navigator.getUserMedia`. 197 | - [`react-wait`](https://github.com/f/react-wait) Complex Loader Management Hook for React Applications. 198 | - [`react-window-communication-hook`](https://github.com/AvraamMavridis/react-window-communication-hook) React hook to communicate among browser contexts (tabs, windows, iframes). 199 | - [`react-with-hooks`](https://github.com/yesmeck/react-with-hooks) Ponyfill for the proposed React Hooks API. 200 | - [`reaktion`](https://github.com/mfrachet/reaktion) useState like hook for global state management. 201 | - [`redhooks`](https://github.com/iusehooks/redhooks) Global state management with React Hooks. It also supports the use of middleware like redux-thunk or redux-saga or your own custom middleware. 202 | - [`redux-react-hook`](https://github.com/ianobermiller/redux-react-hook) React hook for accessing mapped state from a Redux store. 203 | - [`region-core`](https://github.com/regionjs/region-core) A global state management framework with a hook `useProps`. 204 | - [`rehooks-visibility-sensor`](https://github.com/imbhargav5/rehooks-visibility-sensor) It checks whether an element has scrolled into view or not. 205 | - [`resynced`](https://github.com/pedronasser/resynced) Multiple state management using React Hooks API. 206 | - [`reto`](https://awmleer.github.io/reto) Flexible and efficient React store with hooks. 207 | - [`rrh`](https://github.com/brn/rrh) Super Simple React Hooks for react-redux. 208 | - [`rxjs-hooks`](https://github.com/LeetCode-OpenSource/rxjs-hooks) An easy way to use RxJS v6+ with react hooks. 209 | - [`scroll-data-hook`](https://github.com/dejorrit/scroll-data-hook) Returns information about scroll speed, distance, direction and more. 210 | - [`style-hook`](https://github.com/style-hook/style-hook) 🎨 wirte css in js with react hooks. 211 | - [`swr`](https://github.com/zeit/swr) React Hooks library for remote data fetching. 212 | - [`the-platform`](https://github.com/palmerhq/the-platform) Browser API's turned into React Hooks and Suspense-friendly React elements for common situations. 213 | - [`trousers`](https://github.com/danieldelcore/trousers) 👖 A hooks-first CSS-in-JS library, focused on semantics and runtime performance 214 | - [`use-abortable-fetch`](https://github.com/mauricedb/use-abortable-fetch) React hook that does a fetch and aborts when the components is unloaded or a different request is made. 215 | - [`use-action`](https://github.com/awmleer/use-action) Almost same to useEffect, but not deferred. 216 | - [`use-as-bind`](https://github.com/tylervipond/use-as-bind) React hook for using as-bind with a WASM source. 217 | - [`use-async-memo`](https://github.com/awmleer/use-async-memo) React hook for generating async memoized data. 218 | - [`use-autocomplete`](https://github.com/lowewenzel/use-autocomplete) A React hook for returning autocomplete values for a search string within an array. 219 | - [`use-axios-react`](https://github.com/sergey-s/use-axios-react) React CRUD hooks for axios, comprehensive list of examples 220 | - [`use-boolean`](https://github.com/mykolaharmash/use-boolean) Convenient helpers for handling boolean state. 221 | - [`use-browser-history`](https://github.com/zcallan/use-browser-history) A React hook to handle browser history events. 222 | - [`use-cart`](https://github.com/samjbmason/use-cart) A React hook that gives you shopping cart functionality. 223 | - [`use-click-away`](https://github.com/geobde/use-click-away) React hook when you want a callback invoked when a DOM element was not clicked. 224 | - [`use-clippy`](https://github.com/CharlesStover/use-clippy) A React hook to reading from and writing to the user's clipboard. 225 | - [`use-context-selector`](https://github.com/dai-shi/use-context-selector) React useContextSelector hook in userland. 226 | - [`use-controlled-input-number`](https://github.com/d-asensio/use-controlled-input-number) React hook to turn numeric input behavior into pretty much what you expect. 227 | - [`use-countries`](https://github.com/oktaysenkan/use-countries) Custom react hook to list countries and languages. 228 | - [`use-debounce`](https://github.com/xnimorz/use-debounce) A debounce (and throttle) hook for React. 229 | - [`use-deep-compare`](https://github.com/sandiiarov/use-deep-compare) It's react's useEffect/useMemo/useCallback hooks, except using deep comparison on the inputs. 230 | - [`use-deep-compare-effect`](https://github.com/kentcdodds/use-deep-compare-effect) 🐋 It's react's useEffect hook, except using deep comparison on the inputs, not reference equality. 231 | - [`use-detect-print`](https://github.com/gregnb/use-detect-print) React hook to detect when a page is being printed. 232 | - [`use-dimensions`](https://github.com/CharlesStover/use-dimensions) React Native hook for getting screen and window dimensions. 233 | - [`use-double-click`](https://github.com/zattoo/use-double-click) React hook for continuous double-clicks and combining click and double-click events 234 | - [`use-eazy-auth`](https://github.com/gffuma/use-eazy-auth) React hooks for handle auth stuff. 235 | - [`use-events`](https://github.com/sandiiarov/use-events) A set of React Hooks to handle mouse events. 236 | - [`use-force-update`](https://github.com/CharlesStover/use-force-update) React hook for forcing re-render of a functional Component. 237 | - [`use-hotkeys`](https://github.com/sandiiarov/use-hotkeys) HotKeys.js React Hook that listen to keydown and keyup keyboard events, defining and dispatching keyboard shortcuts. 238 | - [`use-hovering`](https://github.com/therealparmesh/use-hovering) Simple, accessible React hook for tracking hover state. 239 | - [`use-http`](https://github.com/alex-cory/use-http) 🐶 useFetch, React hook for making isomorphic http requests. 240 | - [`use-immer`](https://github.com/mweststrate/use-immer) A hook to use [immer](https://github.com/mweststrate/immer) to manipulate state. 241 | - [`use-input-file`](https://github.com/neighborhood999/use-input-file) React hook for creating input file. 242 | - [`use-is-mounted-ref`](https://github.com/helderburato/use-is-mounted-ref) `useIsMountedRef` is a React Hook to check when the component is mounted. 243 | - [`use-lang-direction`](https://github.com/davidicus/use-lang-direction) A hook that reads the HTML element's `dir` attribute value and any updates to that value allowing you to update your UI accordingly. 244 | - [`use-last-fm`](https://github.com/webmail/use-last-fm) A hook to show your current playing song from **Spotify** or any other site [last.fm](https://last.fm) supports in realtime. ♪ 245 | - [`use-lilius`](https://github.com/its-danny/use-lilius) A headless calendar hook for React. 246 | - [`use-media`](https://github.com/streamich/use-media) CSS media queries with React hook. 247 | - [`use-mouse-action`](https://github.com/dimitrinicolas/use-mouse-action) React Hooks to listen to both mouse down or up and click events with a once called function. 248 | - [`use-multiselect`](https://github.com/jschloer/use-multiselect) Manage multiselect state. 249 | - [`use-overflow`](https://github.com/amorriscode/use-overflow) A React Hook that allows you to detect X and Y overflow 250 | - [`use-places-autocomplete`](https://github.com/wellyshen/use-places-autocomplete) 📍 React hook for Google Maps Places Autocomplete. 251 | - [`use-popper`](https://github.com/sandiiarov/use-popper) React hook wrapper around Popper.js. 252 | - [`use-query-params`](https://github.com/pbeshai/use-query-params) A React Hook for managing state in URL query parameters with easy serialization. 253 | - [`use-react-modal`](https://github.com/alex-cory/use-react-modal) 🖼 useModal, React hook for Modals/Dialogs/Lightboxes 254 | - [`use-react-router`](https://github.com/CharlesStover/use-react-router) React Hook for pub-sub behavior using React Router. 255 | - [`use-reactive-state`](https://github.com/tedstoychev/use-reactive-state) `useReactiveState()` - a reactive alternative to React's `useState()`. 256 | - [`use-reducer-async`](https://github.com/dai-shi/use-reducer-async) React useReducer with async actions 257 | - [`use-redux`](https://github.com/flepretre/use-redux) A hook to bind [redux](https://redux.js.org). 258 | - [`use-scroller`](https://github.com/geobde/use-scroller) React hook that automatically adds the next page, saving users from a full page load. 259 | - [`use-scroll-to-bottom`](https://github.com/tudorgergely/use-scroll-to-bottom) React hook for detecting when an element was scrolled to bottom. 260 | - [`use-simple-undo`](https://github.com/sandiiarov/use-simple-undo) Simple implementation of undo/redo functionality. 261 | - [`server-push-hooks`](https://github.com/mfrachet/server-push-hooks) 🔥 React hooks for [socket.io](https://socket.io), [SEE](https://developer.mozilla.org/en-US/docs/Web/API/Server-sent_events/Using_server-sent_events) and more to come 262 | - [`use-socket.io-client`](https://github.com/iamgyz/use-socket.io-client) React hook for socket.io-client, manipulate [socket.io](https://socket.io) client without any side effect. 263 | - [`use-sse`](https://github.com/kmoskwiak/useSSE) ✨useSSE - use Server-Side Effect. `useEffect` both on client and server side. 264 | - [`use-ssr`](https://github.com/alex-cory/use-ssr) ☯️ React hook to determine if you are on the server, browser, or react native. 265 | - [`use-state-snapshots`](https://github.com/haydn/use-state-snapshots) A React hook to keep track of state changes for undo/redo functionality. 266 | - [`use-substate`](https://github.com/philipp-spiess/use-substate) React hook for subscribing to your single app state (works with your current [Redux](https://redux.js.org/) app). 267 | - [`use-suspender`](https://github.com/octet-stream/use-suspender) Execute asynchronous actions with [`React.Suspense`](https://reactjs.org/docs/react-api.html#reactsuspense) 268 | - [`use-t`](https://github.com/streamich/use-t) Multi-language using hooks. 269 | - [`use-undo`](https://github.com/xxhomey19/use-undo) React hook to implement Undo and Redo functionality. 270 | - [`use-videocard`](https://github.com/BRA1L0R/use-videocard) React hook to fetch the graphics card information of the client using canvas 271 | - [`use-window-blur-change-title`](https://github.com/cyntler/use-window-blur-change-title) React Hook for set the page title when the user is shifting focus away from the current window. 272 | - [`useDarkMode`](https://github.com/donavon/use-dark-mode) A custom React Hook to help you implement a "dark mode" component. 273 | - [`useDeferredState`](https://github.com/phytonmk/useDeferredState) A React hook for deferring state change. That's essential when your UI needs to wait for disappearing animation is complete to unmount component. 274 | - [`useDropZone`](https://github.com/sbaidon/useDropZone) React hook that allows you to set simple drag and drop functionality. 275 | - [`useEmailAutocomplete`](https://github.com/alex-cory/use-email-autocomplete) 📬 React hook for email autocomplete inputs. 276 | - [`useFileDialog`](https://github.com/omidnikrah/use-file-dialog) Open file dialog without struggling with file input using useFileDialog react hook 277 | - [`useInView`](https://github.com/thebuilder/react-intersection-observer) React implementation of the Intersection Observer API to tell you when an element enters or leaves the viewport. 278 | - [`useIsTyping`](https://github.com/KATT/use-is-typing) Hook to see if the user is typing within a textarea or input 279 | - [`useKeyCapture`](https://github.com/pranesh239/use-key-capture) ⌨️ A simple hook to make keyDown listening event easier. 280 | - [`usePosition`](https://github.com/tranbathanhtung/usePosition) React hook to get position top left of an element. 281 | - [`useReducerWithEffects`](https://github.com/frankiesardo/use-reducer-with-effects) React Hook that colocates reducer and side effects 282 | - [`useReducerWithLocalStorage`](https://github.com/Tweries/useReducerWithLocalStorage) React hook that adds local storage support to the `useReducer` hook 283 | - [`useScreenType`](https://github.com/pankod/react-hooks-screen-type) Determining screen size type for Bootstrap 4 grid. 284 | - [`useScreenType`](https://github.com/wednesday-solutions/react-screentype-hook) React hook to dynamically get current screen type (mobile, tablet, desktop) with configurable breakpoint support. 285 | - [`useScrollSpy`](https://github.com/Purii/react-use-scrollspy) React hook to automatically update navigation based on scroll position. 286 | - [`useServiceWorker`](https://github.com/JCofman/react-hook-use-service-worker) A React hook which can register a service worker 287 | - [`useValueAfter`](https://github.com/bboydflo/use-value-after) Very simple React hook to easily provide different props to a component (comes in handy for testing edge cases) 288 | - [`useWaitForElements`](https://github.com/renansoares/useWaitForElements) A simple hook to wait for elements to be rendered with MutationObserver. 289 | - [`useWindowOrientation`](https://github.com/tywmick/use-window-orientation) A hook returning the window's orientation (portrait vs. landscape) based off of current window dimensions 290 | - [`useWindowWidthBreakpoints`](https://github.com/tywmick/use-window-width-breakpoints) A hook for using (Bootstrap-inspired) window width breakpoints 291 | --------------------------------------------------------------------------------