无法将组件添加到vue应用程序模板-您是否正确注册了组件?

时间:2019-02-08 14:27:43

标签: javascript vue.js vuejs2 components vue-component

我在应用程序中添加了一个主Vue应用程序。而且我想向应用程序中添加一个组件。

尝试将TopMenu.vue添加到App.vue:

<top-menu></top-menu>在App.vue中。

已在main.js中注册用于应用程序。 我使用的单个文件组件正确吗?

main.js

import Vue from 'vue'
import App from './components/App'
import TopMenu from './components/TopMenu'

Vue({
  el: '#app',
  render: h => h(App),
  components: {
    'top-menu': TopMenu
  }
})

App.vue:

<template>
  <div class="wrapper">
    <top-menu></top-menu>
    <div class="container drop-shadow">
      <h1>{{ message }}</h1>
      <p1>{{ about }}</p1>
    </div>
  </div>
</template>

<script>
export default {
  name: "App",
  data() {
    return {
      message: "Hello kosken!",
      about: "Using Parcel In A Vue.js App"
    };
  }
};
</script>

TopMenu.vue:

<template>
    <div class="user-menu drop-shadow"></div>
</template> 

<script>
    export default {
        name: 'top-menu',
        data: function () {
            return "somedata";
        }
    }
</script>

2 个答案:

答案 0 :(得分:1)

您应该将其导入并在App.vue中使用它:

<template>
  <div class="wrapper">
    <top-menu></top-menu>
    <div class="container drop-shadow">
      <h1>{{ message }}</h1>
      <p1>{{ about }}</p1>
    </div>
  </div>
</template>

<script>
import TopMenu from './TopMenu'
export default {
  name: "App",
  data() {
    return {
      message: "Hello kosken!",
      about: "Using Parcel In A Vue.js App"
    };
  },  
  components: {
    'top-menu': TopMenu
  }
};
</script>

答案 1 :(得分:0)

import Vue from 'vue'
import App from './components/App'
import TopMenu from './components/TopMenu'

Vue.component('top-menu', TopMenu)

这是应该全局注册组件并且可以在任何地方使用的方式。