NuxtJS|在 header 个组件中加载组件

NuxtJS| load component in header component

我目前正忙于创建 NuxtJS 应用程序。在这个应用程序中,我有一个 header 和一个按预期工作的 header 组件。但我想为我的子页面添加一个功能。 header 始终具有相同的样式,但内容应该不同。我如何才能根据页面在我的 header 组件中加载正确的内容组件?比如像这样我的nuxtjs结构如下:

pages/index.vue:

<template>
    <div>
        <Header/>
    </div>
</template>

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

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

` 这应该用主页的内容加载我的 header.vue 所以例如我的 /components/header.vue 应该看起来像这样:

<template>
    <div>
        <header class="hero is-fullheight">
            <div class="hero-head has-background-white">
                <Menu />
            </div>
            <div class="hero-body">
                <div class="container fluid">
                    <HomepageContent />
                </div>
            </div>
        </header>
    </div>
</template>

<script>
    import Menu from '~/components/header/Menu.vue';
    import HomepageContent from '~/components/header/HomepageContent.vue';

    export default {
        components: {
            Menu,
            HomepageContent
        }
    }
</script>

<style lang="scss" scoped>
    .hero {
        background-size:cover;
        position:relative;
    }
</style>

如您所见,它应该加载组件主页内容。但是当我从子页面加载 header.vue 时,例如 'about-me' 它应该加载组件 AboutMeContent.vue

我已经研究这个问题几个小时了,但找不到有用的解决方案。这里有人可以帮助我吗?

谢谢。

你的主页内容加载了吗?
如果不是,您的 '~/components/header/HomepageContent/vue' 应该是 '~/components/header/HomepageContent.vue'

您正在寻找空位。可以找到文档 here

例子

<div class="container">
  <header>
    <slot name="header"></slot>
  </header>
  <main>
    <slot></slot>
  </main>
  <footer>
    <slot name="footer"></slot>
  </footer>
</div>

<base-layout>
  <template slot="header">
    <h1>Here might be a page title</h1>
  </template>

  <p>A paragraph for the main content.</p>
  <p>And another one.</p>

  <template slot="footer">
    <p>Here's some contact info</p>
  </template>
</base-layout>