Javascript v-bind的vuejs动态组件抛出错误:是,错误是属性或方法。。。未在实例上定义,但在渲染期间引用

Javascript v-bind的vuejs动态组件抛出错误:是,错误是属性或方法。。。未在实例上定义,但在渲染期间引用,javascript,vue.js,vuejs2,components,Javascript,Vue.js,Vuejs2,Components,文件中的代码: <template> <component v-bind:is="bbc"></component> </template> <script> import bbc from './bbc.vue'; export default { name: 'ShowRoom2', }; </script> 复制 git克隆git@github.com:adamchenwei/vue-hoc

文件中的代码:

<template>
  <component v-bind:is="bbc"></component>
</template>

<script>

import bbc from './bbc.vue';

  export default {
    name: 'ShowRoom2',
  };
</script>
复制

  • git克隆git@github.com:adamchenwei/vue-hoc-playery.git
  • 转到
    src/components/ShowRoom2.vue
  • 纱线安装和纱线服务
  • 在本地浏览器中观察错误

  • 是的,模板中的作用域与脚本作用域不同。如果需要一些数据,则需要在代码的“组件”定义部分中声明。对于您的情况,我想“数据”属性应该可以工作

    import bbc from './bbc.vue';
    
    export default {
      name: 'ShowRoom2',
      data() {
        return {
          bbc: bbc,
        };
      },
    };
    

    但是,代码的模板部分看起来也很奇怪。你能解释一下你想做什么吗?

    我想你必须在没有
    的情况下设置
    @boussadjrabrahim抱歉,我可能误解了你说的话,但文档中另有说明(当然,Vue文档在某些部分不是最新的)嗨,谢谢你的回答。我正在尝试使用动态组件作为创建HOC的替代方案,这涉及到将类名等添加到包装组件中,我想
    thingie可以帮助做到这一点吗?所以下一步我要做的是HOC?我不太熟悉。它有点类似的功能!我现在选择这种方法而不是HOC(因为它在Vuejs中没有很好地实现,各种文章都显示了这一点)。谢谢
    import bbc from './bbc.vue';
    
    export default {
      name: 'ShowRoom2',
      data() {
        return {
          bbc: bbc,
        };
      },
    };