web-dev-qa-db-ja.com

単一ファイルコンポーネント内でVueJS 2グローバルコンポーネントを使用する方法

1つのファイルコンポーネント内でグローバルに登録されたコンポーネント(Vue.componentを使用)を使用しようとしていますが、常に取得しています

vue.common.js:2611[Vue warn]: Unknown custom element: <my-component> - did you register the component correctly?

例えば:

main.js:

...
Vue.component('my-component', {
    name: 'my-component',
    template: '<div>A custom component!</div>'
})
...

home.vue:

<template>
    <div>
        <my-component></my-component>
    </div>
</template>
<script>
    module.exports = {
        name: 'home'
    }
</script>

ローカルに登録すると、正常に機能します。

<template>
    <div>
        <my-component></my-component>
    </div>
</template>
<script>
module.exports = {
    name: 'home',
    components: {
        'my-component': require('./my-component.vue')
    }
}
</script>
23
J. Molinero

Module.exportsは必要ありません。 mycomponent.vueファイル内にこれを含めることにより、コンポーネントをグローバルに登録できます。

<template>
    <div>A custom component!</div>
</template>
<script>
    export default {}
</script>

次に、main.jsに追加します

import MyComponent from './component.vue'
Vue.component('my-component', MyComponent);

または、通常、それらをメインにインポートする「グローバル」ファイルに登録します。

これにより、アプリのどこでもmy-componentを使用できるようになります。

48
Bryan Kneis

Component.vue

<template><div>A custom component!</div></template>

<script>export default { code here... }</script>

Home.vueでこのコンポーネントを使用します。

<template>
    <div>
        <my-component></my-component>
    </div>
</template>

 <script>
    import component from './component.vue'
    export default {
     components: { my-component: component }
    }
</script>
3
Med