创建从捆绑汇总库导入的vue组件的实例时,我遇到问题,我使用Vue.prototype将全局属性添加到根Vue实例,并且该属性在所有组件之间共享,但是,当我使用Vue.extend方法创建新实例时,新创建的组件没有原型属性或全局变量,它们都只会返回undefined。
//Main.js
Vue.prototype.$example = 'Hello there!';
//////////////////////////////
new Vue({
router,
store,
render: h => h(App)
}).$mount('#app')
//App.vue
import { MyDynamicComponent } from 'my-bundled-rollup-library';
export default {
created() {
var DynamicComponent = Vue.extend(MyDynamicComponent);
console.log(this.$example) //Returns 'Hello there!' (correct)
var instance = new DynamicComponent({
propsData: {
hello:'world',
},
})
///////////////////////////////////////////
console.log(instance.$example) //Returns undefined (does not have the property)
}
}
这是捆绑之前的组件示例
//MyDynamicComponent.vue
const MyDynamicComponent = {
props:{
hello:{
type:String
}
},
created() {
console.log(this.$example) //undefined
}
}
export default component
export { MyDynamicComponent as MyDynamicComponent }
我首先想到的是,该组件使用的Vue实例与Vue.extend的实例不同
[!] Error: Cannot find module 'vue/dist/vue.esm.js'
我的rollup.config文件具有