美文网首页
vue 递归组件

vue 递归组件

作者: 尼莫nemo | 来源:发表于2018-11-21 16:00 被阅读0次

递归组件的定义

  • 每个组件都有一个name属性。当你注册全局组件的时候这个全局的ID会设置成这个组件的name属性
  • 递归组件容易 陷入无限循环中,所以使用递归最好是要有条件性的
Vue.component('unique-name-of-my-component', {
  // ...
})
这时候组件名就是组件的name

无限递归死循环的组件,当出现这样的情况会报max stack size exceede 的错误
name: 'stack-overflow',
template: '<div><stack-overflow></stack-overflow></div>'

组件之间的循环引用

  • 如下当父组件传递的值childer存在的时候就会继续调用父组件 知道父组件传递的值不存在的时候递归结束 条件是全局注册的组件
<tree-folder>
  <p>
    <span>{{ folder.name }}</span>
    <tree-folder-contents :children="folder.children"/>
  </p>
</tree-folder>

子组件
  <ul>
    <li v-for="child in children">
      <tree-folder v-if="child.children" :folder="child"/>
      <span v-else>{{ child.name }}</span>
    </li>
</ul>
  • 当组件不是全局注册的时候 我们使用递归组件需要经过处理才使用
    解决方案如下

方案一

beforeCreate: function () {
  this.$options.components.TreeFolderContents = require('./tree-folder-contents.vue').default
}

方案二
推荐使用 webpack的异步组件 通过 import 引入如下
异步组件的注册是一个箭头函数

components: {
  TreeFolderContents: () => import('./tree-folder-contents.vue')
}

相关文章

  • 树形结构递归/原生js实现/vue递归组件

    原生js实现递归渲染 Vue2.0递归组件

  • vue 局部组件递归

    vue只有全局注册的组件才能递归调用吗? 最近在开发 npm 组件库,需要递归使用组件,组件间存在相互依赖关系。搜...

  • Vue menu 递归组件

    分享一个用递归的方式写 menu 组件 vue 利用递归组件写导航 为什么要用递归的方式写 ? 原因可以有几点: ...

  • 父子组件通信

    vue之父子组件间通信实例讲解(props、emit) Vue.js 递归组件实现树形菜单(实例分享)

  • vue递归组件

    今天在阅读vue文档的时候,发现还有一个递归组件,平时没有注意到。递归组件就是在自己组件的模板中调用自己,此时组件...

  • vue递归组件

    1.效果图 2.布局 模板: 实例以及函数方法:

  • vue 递归组件

    递归组件的定义 每个组件都有一个name属性。当你注册全局组件的时候这个全局的ID会设置成这个组件的name属性 ...

  • vue递归组件

    用vue写后台管理系统侧边栏时,用到了递归组件的问题,有的侧边栏导航可能有多个下级分类,结合element来写的一...

  • Vue组件递归

    写在前面有时候我们需要树状菜单,比如通讯录的分组列表。在这时候数据是树状存储的,给前端的数据需要进行递归读取。这时...

  • vue 递归组件

    vue 递归组件 前言 对于一些有规律的 dom 结构,我们可以通过递归方式来生成这个结构,,那么在 vue 的模...

网友评论

      本文标题:vue 递归组件

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