Как использовать глобальные компоненты VueJS 2 внутри отдельных файловых компонентов?
Я пытаюсь использовать глобально зарегистрированный компонент (с 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>
Ответы
Ответ 1
Вам не нужен 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);
или я обычно регистрирую их в файле "globals", который импортирует его в основной файл.
Это должно позволить вам использовать мой компонент в любом месте приложения.
Ответ 2
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>