No. I usually have a Layout.tsx
that looks like this. Then I make App a higher-order component (hoc), so I can reuse the layout on every page by just passing in a content component.
WebDev
Community for all things Web Development related.
But Why?
Is there any issue with this sort of design
I was answering this question. No, no issue. A HoC is just an enhancement to reuse the layout. See my self reply with more info on file splitting by single export convention. It is just for ease of navigating a repo and human-readability. Is it needed for a small project? No. My personal preference is to be consistent so I usually follow the same conventions regardless of project size.
In addition, one advantage of still splitting Header and Footer, even with a Layout, is you can make them optional props to App with what you have as the defaults so they can be overriden.
It could still be the same file, but the typical convention is one exported component per file where the filename matches the component name. This is just a style guide for recommended best practices and readability.
Aight, that's enough justification for me. I'll go get to work.
Split the file if it feels like to much code to read comfortably. Most often I have a Layout component in a single file that receives its contents as children. Header and Footer are most often their own file in my case but if they are just a few lines of code I leave them in the Layout.