有没有办法让一个.vue
文件负责在单个文件组件模式中创建自己的Vue实例?
这是Vue文件.
// MyComponent.vue
<template><div>Hello {{ name }}!</div></template>
<script>
const Vue = require('vue');
// what would usually be exports default
const componentConfig = {
name: "my-component",
props: {
name: String,
},
};
function create(el, props) {
const vm = new Vue({
el,
render(h) {
return h(componentConfig, { props });
});
vm.$mount();
return vm;
}
module.exports = { create };
</script>
然后是一些JS文件中的用法:
// index.js
const MyComponent = require('./MyComponent.vue');
const el = '.container';
const props = {
name: 'Jess',
};
MyComponent.create(el, props);
</script>
当我执行上述操作时,会出现无法找到模板的错误.
[Vue warn]: Failed to mount component: template or render function not defined.
found in
---> <MyComponent>
<Root>
出于本能,我不明白Vue编译器如何(从脚本标记中)神奇地推断出I want引用了上面声明的模板...所以是 啊有没有解释为什么我不能这样做,或者思考如何让它工作?