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');
}
}