Simple HOC in React
Nabil Alamin

Nabil Alamin @arndom

About: another random dev

Location:
Nigeria
Joined:
Dec 14, 2020

Simple HOC in React

Publish Date: Sep 18 '21
3 0

Higher Order Components allow for reusability of code and saves you from repeating yourself, it comes in quite handy. It is something that recently came to my attention and I only wish I had learnt this earlier.

In this instance, I had a layout that consisted of a top nav embedded with a drawer that appeared in multiple views but not all, so instead of always importing it I made it a HOC like this:

import React from 'react'
import TopNav from '../components/TopNav'

export const WithLayout = (Component)  => {
    return (props) => (
        <div>
            <TopNav/>
            <Component {...props}/>
        </div>
    )
}

Enter fullscreen mode Exit fullscreen mode

So what this allows you to do is wrap any component you want to have a top nav in this Layout component, just like this:

import React from 'react'
import { WithLayout } from '../HOC/Layout'

const Landing = () => {
    return (
        <div>
            <p>This a page that uses the layout HOC </p>
        </div>
    )
}

export default WithLayout(Landing)

Enter fullscreen mode Exit fullscreen mode

And with that, you have a functional HOC in your react app.

👋

Comments 0 total

    Add comment