Mvvm Vue.js 2:如何从.Vue文件初始化(构造)Vue组件?

Mvvm Vue.js 2:如何从.Vue文件初始化(构造)Vue组件?,mvvm,ecmascript-6,vue.js,vuejs2,vue-component,Mvvm,Ecmascript 6,Vue.js,Vuejs2,Vue Component,我正在尝试创建一个组件实例: App.vue 而new行报告错误: 未捕获类型错误:MyComponent.default不是构造函数 那么,如果要创建组件,该如何操作?以下是在其他组件中注册组件的方法: export default { el: '#some-place' components: { 'my-component' } } 文件: 编辑:如何创建vm实例 如果要初始化vm实例,可以使用。它的作用是: 创建基本Vue构造函数的“子类”。参数应该是包含组件选

我正在尝试创建一个组件实例:

App.vue
new
行报告错误:

未捕获类型错误:MyComponent.default不是构造函数


那么,如果要创建组件,该如何操作?

以下是在其他组件中注册组件的方法:

export default {
  el: '#some-place'
  components: {
      'my-component'
  }
}
文件:

编辑:如何创建vm实例 如果要初始化vm实例,可以使用。它的作用是:

创建基本Vue构造函数的“子类”。参数应该是包含组件选项的对象

这里需要注意的一点是:

这里需要注意的特殊情况是数据选项-与Vue.extend()一起使用时,它必须是一个函数

您需要在代码中进行类似于以下内容的更改:

import MyComponent from './components/MyCompnent.vue';
const vmClass = Vue.extend(MyComponent)
const vm = new MyComponent();
vm.$mount('#some-place');
试试这个

脚本:

import MyComponent from './components/MyCompnent.vue';

export default {
    name : 'comp',
    components :{
      MyComponent
    }  
  }
Html 您可以像这样在html中调用组件

<template>
<mycomponent></mycomponent>
</template>

最后,我自己找到了解决方案,非常简单:

导入的
组件本身不是构造函数,但我们可以轻松创建构造函数:

import MyComponent from './components/MyCompnent.vue';
const MyComponentConstructor = Vue.extend(MyComponent);
因此,最终的解决方案是:

import MyComponent from './components/MyCompnent.vue';
export default {
    mounted() {
        const MyComponentConstructor = Vue.extend(MyComponent);
        const vm = new MyComponentConstructor();
        vm.$mount('#some-place');
    }
}

我只想初始化一个vm实例,就像
new Vue()
返回一样。我相信html中的组件应该是
,因为它是驼峰式的。我只想初始化一个vm实例,就像
new Vue()一样
返回。您为什么需要这样做?@trusktr它会在html标记中添加一个额外的冗余标记,这是我不想要的。
import MyComponent from './components/MyCompnent.vue';
export default {
    mounted() {
        const MyComponentConstructor = Vue.extend(MyComponent);
        const vm = new MyComponentConstructor();
        vm.$mount('#some-place');
    }
}