Nuxt.js - How to use component inside layout?

You can't use reserved HTML tags for component names. It includes footer, header etc. Here full list of reserved tag names.

So you need to rename your component to something different, for example my-header


Try changing <header /> to <Header />. (as the component you have defined for the view is Header with a capital H.)

Capitalization is important. In this case, because header is an existing element tag, Vue will just render an empty tag without complaining.