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.
@d2k/react-devto
@d2k/react-devto is a package that provides us with hooks that give us content from dev.to.
To install it, we run:
npm i @d2k/react-devto --save
Then we can use the provided hooks by writing;
import React from "react";
import {
useArticles,
useFollowSuggestions,
useTags,
useUser
} from "@d2k/react-devto";
export default function App() {
const { articles, loading, error } = useArticles();
return (
<>
<div>{articles.map(a => a.title)}</div>
<div>{loading}</div>
<div>{error}</div>
</>
);
}
It provides the useArticles
hook to get the latest articles.
articles
has the articles’ data.
loading
has the loading state.
error
has errors if any.
It can take the page
, tag
, and username
arguments in this order.
page
is the page to go to.
tag
is the tag to search for.
username
has the username to look for.
The useTags
hook has the tags from the website.
We can use it by writing:
import React from "react";
import {
useArticles,
useFollowSuggestions,
useTags,
useUser
} from "@d2k/react-devto";
export default function App() {
const { tags, loading, error } = useTags();
return (
<>
<div>
{tags.map(t => (
<p>{t.name}</p>
))}
</div>
</>
);
}
@d2k/react-github
@d2k/react-github is a series of React hooks that let us get data from Github.
To install it, we run:
npm i @d2k/react-github --save
Then we can use it by writing:
import React from "react";
import { useUser } from "@d2k/react-github";
export default function App() {
const { user, loading, error } = useUser("nat");
return (
<>
<div>{JSON.stringify(user)}</div>
</>
);
}
We can pass the user name into the useUser
hook to get its data.
It includes the ID, login, company, and more.
The useRepos
hook let us get the repos that a user has.
For example, we can write:
import React from "react";
import { useRepos } from "@d2k/react-github";
export default function App() {
const { repos, loading, error } = useRepos("nat");
return (
<>
<div>{JSON.stringify(repos)}</div>
</>
);
}
We have the useRepos
hook to get the repos of the 'nat'
user.
The useBranch
hook lets us get data about a branch of the repo.
To use it, we write:
import React from "react";
import { useBranch } from "@d2k/react-github";
export default function App() {
const { branch, loading, error } = useBranch("facebook", "react", "master");
return (
<>
<div>{JSON.stringify(branch)}</div>
</>
);
}
We get the repo with the user name, repo name, and the branch name in this order.
There’s also the useBranches
hook to get data from all branches of a repo.
For example, we can write:
import React from "react";
import { useBranches } from "@d2k/react-github";
export default function App() {
const { branches, loading, error } = useBranches("facebook", "react");
return (
<>
<div>{JSON.stringify(branches)}</div>
</>
);
}
In all examples, loading
and error
have the loading and error states.
Conclusion
We can use some useful hooks to get public data from various websites.