以编程方式创建的Vue组件,缺少在Vue.prototype上定义的全局属性

问题描述 投票:0回答:2

创建从捆绑汇总库导入的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的实例不同

javascript vue.js vuejs2 rollup
2个回答
0
投票
唯一让我感到困惑的是为什么您没有将组件导入为默认组件?

0
投票
[!] Error: Cannot find module 'vue/dist/vue.esm.js'

我的rollup.config文件具有

最新问题
© www.soinside.com 2019 - 2025. All rights reserved.