【发布时间】:2018-09-27 03:53:30
【问题描述】:
我试图在我的home.vue 组件中使用search-bar component,但我不知道为什么它不起作用。
文件夹结构
App.vue
components
home.vue
query.vue
common
HeaderBar.vue
SideBar.vue
SearchBar.vue
App.vue
脚本
import HeaderBar from './components/common/HeaderBar'
import SideBar from './components/common/SideBar'
export default {
name: 'App',
components: {
HeaderBar,
SideBar
},
html
<template>
<div id="app">
<HeaderBar></HeaderBar>
<SideBar></SideBar>
<main class="view">
<router-view></router-view>
</main>
</div>
</template>
上面的工作很好。
Home.vue
脚本
import SearchBar from './common/SearchBar'
export default {
name: 'Home',
components: SearchBar
}
html
<template>
<section class="home">
<div class="hero-content">
<h1>Hello World</h1>
<SearchBar></SearchBar>
</div>
</section>
</template>
我收到这些错误:
[Vue 警告]:无效的组件名称:“_compiled”。组件名称可以 仅包含字母数字字符和连字符,并且必须以 用一封信。
[Vue 警告]:无效的组件名称:“__file”。组件名称只能包含字母数字字符和连字符,并且必须以字母开头。
[Vue 警告]:未知的自定义元素:- 你是否注册了 组件正确吗?对于递归组件,请确保提供 “名称”选项。
发现于
---> <Home> at src\components\Home.vue <App> at src\App.vue <Root>
【问题讨论】:
-
你错过了模板中的吗?
-
我编辑了它,只是在我的问题中错过了它。
-
组件:{ SearchBar } ?
-
您应该在项目中的某处有一个
main.js,您可以在其中指定您正在使用的所有组件的名称。看起来 Vue 无法识别您要使用的组件。应该是这样的:Vue.component('app-searchbar', SearchBar);见这里:vuejs.org/v2/guide/components-registration.html -
现在可以正常工作了!谢谢。但是为了我的理解......我现在在 main.js
import SearchBar from './components/common/SearchBar'然后导入了组件Vue.component('app-search', SearchBar);。所以现在它在全球范围内注册了它,我可以在我的app.vue中删除import和components: {}?
标签: javascript vue.js vuejs2 single-page-application vue-component