Hooks contains our logic code in our React app.
We can create our own hooks and use hooks provided by other people.
In this article, we’ll look at some useful React hooks.
@21kb/react-device-orientation-hook
The @21kb/react-device-orientation-hook lets us get the orientation and angle of the screen.
To use it, we install it by running:
npm install --save @21kb/react-device-orientation-hook
or:
yarn add @21kb/react-device-orientation-hook
Then we can use it by writing:
import React from "react";
import useOrientation from "@21kb/react-device-orientation-hook";
export default function App() {
const state = useOrientation({
angle: 0,
type: "landscape-primary"
});
const { angle, type } = state;
return (
<div className="App">
{angle} {type}
</div>
);
}
We set the default angle and orientation with the type property.
Then we can get that returned with the useOrientation hook.
@21kb/react-notification-hook
We can use the notification hook to show native notifications with our browser.
To install it, we run:
npm install --save @21kb/react-notification-hook
or:
yarn add @21kb/react-notification-hook
Then we can use it by writing:
import React from "react";
import useNotification from "@21kb/react-notification-hook";
export default function App() {
const notify = useNotification({
title: "hello world",
options: {
dir: "rtl"
}
});
return <button onClick={notify()}>Notify me!</button>;
}
The useNotificatiin hook returns a function to let us display a notification.
The title has the title of the notification.
options include the dir for the direction.
@21kb/react-online-status-hook
The @21kb/react-online-status-hook package lets us get the online status of our app.
We can use the useOnlineStatus or useOfflineStatus hook to get the online status.
We install it with:
npm install --save @21kb/react-online-status-hook
Then we can use it by writing:
import React from "react";
import { useOnlineStatus } from "[@21kb/react-online-status-hook](http://twitter.com/21kb/react-online-status-hook "Twitter profile for @21kb/react-online-status-hook")";
export default function App() {
const status = useOnlineStatus();
return <div>You are currently {status ? "online" : "offline"}.</div>;
}
useOfflineStatus does the same thing.
For example, we can write:
import React from "react";
import { useOfflineStatus } from "@21kb/react-online-status-hook";
export default function App() {
const status = useOfflineStatus();
return <div>You are currently {status ? "online" : "offline"}.</div>;
}
@21kb/react-page-visible-hook
The @21kb/react-page-visible-hook package provides us with a hook for getting the page visibility status of our app.
To install it, we run:
npm install --save @21kb/react-page-visible-hook
or:
yarn add @21kb/react-page-visible-hook
to install it.
Then we can use it by writing:
import React from "react";
import useVisible from "@21kb/react-page-visible-hook";
export default function App() {
const state = useVisible();
const { visibilityState } = state;
return <>{visibilityState}</>;
}
The useVisible hook returns the visibility state of our app.
The value can be 'visible' or 'prerender' .
@21kb/react-dom-status-hook
The @21kb/react-dom-status-hook package provides us with a hook to get the ready state of our app.
We can install it by running:
npm install --save @21kb/react-dom-status-hook
or:
yarn add @21kb/react-dom-status-hook
Then we can use the useDomStatus hook by writing:
import React from "react";
import useDomStatus from "@21kb/react-dom-status-hook";
export default function App() {
const { readyState } = useDomStatus();
return <div>{readyState}</div>;
}
It returns an object with the readyState property to get the DOM loading state.
Conclusion
We can use various hooks to use various browser APIs.