Nuxt.js - 如何在布局中使用组件?

Nuxt.js - How to use component inside layout?

所以我开始玩 Nuxt.js。 我想修改默认布局文件以具有页眉和页脚。 为此,我想创建一个 Header 和一个 Footer 组件,并在它们之间放置页面内容标签 (<nuxt/>)。然而什么也没有发生。

这是我的 default.vue 布局文件:

<template>
  <div>
    <header/>
    <nuxt/>
    <h1>Footer</h1>
  </div>
</template>

<script>
import Header from "~/components/Header.vue";

export default {
  components: {
    Header
  }
};
</script>

<style>
...
</style>

这是我的 Header.vue 组件文件:

<template>
<div>
<h1>Header</h1>
   <div class="links">
          <nuxt-link to="/" class="button--grey">Home</nuxt-link>
          <nuxt-link to="/about" class="button--grey">About</nuxt-link>
      </div>
</div>
</template>

<style>
.links {
  padding-top: 15px;
}
</style>

这有什么问题吗?我可以首先在布局文件中使用组件吗?我是否必须在其他地方单独注册新创建的组件?

遗憾的是,没有太多关于此的具体信息。我怎样才能实现它?

提前致谢!

您不能为组件名称使用保留的 HTML 标签。它包括页脚、页眉等。Here 保留标签名称的完整列表。

因此您需要将您的组件重命名为不同的名称,例如 my-header

尝试将 <header /> 更改为 <Header />。 (因为您为视图定义的组件是带有大写 H 的 Header。)

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