美文网首页
vue 局部组件递归

vue 局部组件递归

作者: webmrxu | 来源:发表于2019-10-14 18:38 被阅读0次

vue只有全局注册的组件才能递归调用吗?

最近在开发 npm 组件库,需要递归使用组件,组件间存在相互依赖关系。搜索了很多答案,大部分推荐的是使用全局注册的方式解决。没有找到满意的解决答案,所以在这记录下来,如果有需要给大家参考。

递归组价时,使用局部组件注册的方式时,会报错误如下:提示你是否有正确注册该组件?如果是递归组件,请确保你提供了name 选项。我查看了我的vue组件,已经写了name 属性,但是还会提示这个错误。

did you register the component correctly? For recursive components, 
make sure to provide the "name" option.

组件结构是:A 组件依赖于 B 组件, 而 B 组件又依赖于 A 组件。

于是参考异步的方式注册组件,解决了这个 报错。

// b-table 组件依赖于 block-form组件, block-form组件 依赖于 b-table组件
export default {
  name: 'b-table',
  components: {
    'block-form': (resolve, reject) => {
      require(['../block-form.vue'], resolve)
    }
  }
}

参考文档:https://ustbhuangyi.github.io/vue-analysis/v2/components/async-component.html

相关文章

网友评论

      本文标题:vue 局部组件递归

      本文链接:https://www.haomeiwen.com/subject/rofdmctx.html