我想在我的组件文件中创建一个组件,然后在我的基本应用程序中包含它(比如用于ng-include)。
我的App.vue看起来像这样:
<template>
<div id="app">
<div class="container-fluid">
<div class="row>
<navigation></navigation>
</div>
<div class="row">
<router-view></router-view>
</div>
</div>
</div>
</template>
<script>
export default {
name: 'app',
}
</script>
<style>
#app {
font-family: 'Avenir', Helvetica, Arial, sans-serif;
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
text-align: center;
color: #2c3e50;
margin-top: 60px;
}
</style>
我的main.js文件如下所示:
import Vue from 'vue'
import App from './App'
import VueRouter from 'vue-router'
import homepage from './components/homepage'
import navigation from './components/navigation'
Vue.use(VueRouter)
const routes = [
{ path: '/', component: homepage}
]
const router = new VueRouter({
routes,
mode: 'history'
})
new Vue({
el: '#app',
template: '<App/>',
components: {
App, navigation
},
router
}).$mount('#app')
navigation.vue:
<template>
<div>
<p>test</p>
</div>
</template>
<script>
export default {
name: 'navigation'
}
</script>
当我运行以上内容时,我得到:
[Vue警告]:未知的自定义元素: - 您是否正确注册了组件?对于递归组件,请确保提供“名称”选项。
在
中找到---&GT;在src / App.vue
我知道如何添加vue.component,但我想要的是一个外部组件,如主页,从组件文件夹中提取,并包含在基础应用程序中。
答案 0 :(得分:4)
要在新的Vue实例中使用该组件,或者您使用(如您所说)VUE.component,或者您应该导入并注册该组件。 见https://vuejs.org/v2/guide/components.html#Local-Registration,你可以 尝试使用App.VUE中的 :
<template>
<div id="app">
<div class="container-fluid">
<div class="row>
<navigation></navigation>
</div>
<div class="row">
<router-view></router-view>
</div>
</div>
</div>
</template>
<script>
import navigation from './components/navigation.vue'
export default {
name: 'app',
components:{
navigation
}
}
</script>
<style>
#app {
font-family: 'Avenir', Helvetica, Arial, sans-serif;
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
text-align: center;
color: #2c3e50;
margin-top: 60px;
}
</style>
navigation.vue 组件可以是:
<template src="template.html"></template>
<script>
export default {
data(){
return {}
}
}
</script>