当前位置: 首页 > 知识库问答 >
问题:

vue.js组件嵌入到另一个组件中时不显示

澹台胜
2023-03-14

我有一个标题,标志,菜单,和菜单项。

菜单项包含文本“这是一个菜单项”,但vue并没有对其进行处理和显示。

这些是组件:

App.Vue

<template>
  <div id="app">
    <mainHeader />
  </div>
</template>

<script>

import mainHeader from './components/mainHeader.vue'

export default {
  name: 'App',
  components: {
    mainHeader
  }
}
</script> 

<style>

html,body{

box-sizing: border-box;
margin:0px;
padding:0px;
}


#app{
background-color:gray;
}

</style>

。/components/mainheader.vue

<template>
    <div id="main-header">
        <logo />
        <mainMenu />
    </div>
</template>

<script>

import logo from "./logo.vue";
import mainMenu from "./mainMenu.vue";

export default
{
    name: 'mainHeader',
    components:
    {
        logo,
        mainMenu,
    }
}
</script>

。/components/mainmenu.vue

<template>
    <div id="main-menu">
        <menuItem />
    </div>
</template>


<script>

import menuItem from "./menuItem.vue";

export default
{
    name: "mainMenu",
    components:
    [
        menuItem
    ]
}
</script>

。/components/menuitem.vue

<template>
    <div class="menu-item">
        This is a menu item
    </div>
</template>

<script>

export default
{
    name: "menuItem"
}

</script>

当我检查DOM时,menuItem没有被解析为div,其中包含以下消息:

  <div id="app">
    <div data-v-ea6a1e94="" id="main-header">
      <div data-v-4b16403b="" data-v-ea6a1e94="" id="logo"></div>
      <div data-v-d2968a70="" data-v-ea6a1e94="" id="main-menu">
        <menuitem data-v-d2968a70=""></menuitem>
      </div>
    </div>
  </div>

如何使组件工作?

共有1个答案

宰父桐
2023-03-14

组件选项有一个对象作为值:

 components:{
        menuItem
    }

建议使用kebab-case命名组件:

   name: "menu-item"

文件名为CamelCase

并像这样导入它:

  import MenuItem from "./MenuItem.vue";

然后注册如下:

 components:{
        MenuItem
    }

最后使用类似 /code>的代码

 类似资料:
  • 问题内容: 许多模板语言都有“ slots”或“ yield”语句,它们允许进行某种形式的控制反转,以将一个模板包装在另一个模板中。 Angular具有“ transclude”选项。 Rails有收益声明。如果React.js拥有yield语句,它将看起来像这样: 所需的输出: React,React.js没有。如何定义包装器组件以实现相同的输出? 问题答案: 尝试: 有关更多信息,请参见文档中

  • 许多模板语言都有“slots”或“yield”语句,它们允许进行某种形式的控制反转,将一个模板包装在另一个模板中。 唉,react.js没有。我如何定义包装器组件以实现相同的输出?

  • 问题内容: 我是React的新手。希望使用单独文件中的少量组件来开发应用程序并将其导入到我的App.js中 我尝试过但无法弄清楚我在做什么错。 这是我的html: 这是我的App.js :( 来自js /目录) 这是我的MyComp.js (来自js / components /目录) 如果我这样尝试,我什么也看不到。而如果我在App.js中创建类,则它就像一个魅力。 有什么建议我在做什么错? 问

  • 我有一个产品组件,我希望将其图片传递给另一个组件,我的图片从Rails后端上传,并映射产品详细信息。我想实现的是,当您单击按钮时,您的产品图片将显示在设计页面中进行自定义设计。 设计页面当您单击设计我按钮时,根据产品,该产品的图片应该出现在设计页面中 陈列

  • 问题内容: 我有两个组成部分。我想从第二个组件中调用第一个组件的方法。我该怎么做? 这是我的代码。 第一部分 第二部分 问题答案: 你可以做这样的事情 使用静态

  • 我知道我们在函数组件中使用history.push(),并对重定向路由做出反应。但是在类组件中,我们如何在点击按钮时重定向

  • 主要内容:全局组件实例,局部组件实例,Prop,Prop 实例,Prop 实例,Prop 实例组件(Component)是 Vue.js 最强大的功能之一。 组件可以扩展 HTML 元素,封装可重用的代码。 组件系统让我们可以用独立可复用的小组件来构建大型应用,几乎任意类型的应用的界面都可以抽象为一个组件树: 注册一个全局组件语法格式如下: tagName 为组件名,options 为配置选项。注册后,我们可以使用以下方式来调用组件: 全局组件 所有实例都能用全局组件。 全局组件实例 注册

  • 问题内容: 我有一个包含一个按钮的标题组件,并且我希望该按钮在单击时显示另一个组件(模式页面)。 我可以做这样的事情: 这是我的标头组件: 这是我的模态页面组件,单击其他组件上的按钮时应显示该组件页面: 用于模态的库:https : //github.com/marcio/react-skylight 问题答案: 更像这样: 确保在子组件上公开一个方法: 基本上,这是在将SkyLight的方法包装