diff --git a/README.md b/README.md
index 1e8145cc..40163a77 100644
--- a/README.md
+++ b/README.md
@@ -71,12 +71,13 @@
- [**Side-effects**](./docs/Side-effects.md)
- [`useAsync`](./docs/useAsync.md) — resolves an `async` function.
- [`useAsyncRetry`](./docs/useAsyncRetry.md) — `useAsync` with `retry()` method.
+ - [`useDebounce`](./docs/useDebounce.md) — debounces a function. [![][img-demo]](https://streamich.github.io/react-use/?path=/story/side-effects-usedebounce--demo)
- [`useFavicon`](./docs/useFavicon.md) — sets favicon of the page.
- [`useLocalStorage`](./docs/useLocalStorage.md) — manages a value in `localStorage`.
- [`useLockBodyScroll`](./docs/useLockBodyScroll.md) — lock scrolling of the body element.
- [`useSessionStorage`](./docs/useSessionStorage.md) — manages a value in `sessionStorage`.
+ - [`useThrottle`](./docs/useThrottle.md) — throttles a function. [![][img-demo]](https://streamich.github.io/react-use/?path=/story/side-effects-usethrottle--demo)
- [`useTitle`](./docs/useTitle.md) — sets title of the page.
- - [`useDebounce`](./docs/useDebounce.md) — debounces a function.
);
};
@@ -42,5 +45,5 @@ const Demo = () => {
## Reference
```ts
-useDebouce(fn, ms: number, args: any[]);
+useDebounce(fn, ms: number, args: any[]);
```
diff --git a/docs/useThrottle.md b/docs/useThrottle.md
new file mode 100644
index 00000000..d3efeed7
--- /dev/null
+++ b/docs/useThrottle.md
@@ -0,0 +1,49 @@
+# `useThrottle`
+
+React hook that invokes a function and then delays subsequent function calls until after wait milliseconds have elapsed since the last time the throttled function was invoked.
+
+The third argument is the array of values that the throttle depends on, in the same manner as useEffect. The throttle timeout will start when one of the values changes.
+
+## Usage
+
+```jsx
+import React, { useState } from 'react';
+import { useThrottle } from 'react-use';
+
+const Demo = () => {
+ const [status, setStatus] = React.useState('Updating stopped');
+ const [value, setValue] = React.useState('');
+ const [throttledValue, setThrottledValue] = React.useState('');
+
+ useThrottle(
+ () => {
+ setStatus('Waiting for input...');
+ setThrottledValue(value);
+ },
+ 2000,
+ [value]
+ );
+
+ return (
+