A Custom Hook is just a JavaScript Function, which name start with "use"

A Custom Hook can use other React Hooks inside the Hook.

Why to Build Custom Hooks

To Segerate the Logic from the Components. Components are for Presentation only don't put the other stuff inside it , Just Hook the OtherStuff. 😇

Use of Hooks make Component Code Cleaner

In this example we are going to create a LocalStorage hook , which is responsible for Set and Get value in Local Storage ,and we call this Hook from the Component. Let's see the Example

Hook Example

Build a storage-hook.js file

export const useLocalStorage = ()=>{
    const setLocalStorage =(key, value)=>{
        localStorage.setItem(key, JSON.stringify(value));
    const getLocalStorage = (key)=>{
        return JSON.parse(localStorage.getItem(key));
    return [setLocalStorage, getLocalStorage];    

In this Example , a Hook contains the operations and return all the operations (functions) in an array, so we call the hook and get the operations, these operations (functions) contains the logic stuff inside the hook , we simply call these  operations from the component and use it.

From the Component File call the Hook.

const [setLocalStorage,getLocalStorage] = useLocalStorage(); // Calling the Hook

Calling the Operations from the Component

setLocalStorage('user', userObject);
console.log('get local storage data is ', getLocalStorage('user'))

That's All Folks, to Build Custom Hooks....