美文网首页
vue 中递归组件的用法

vue 中递归组件的用法

作者: 廊桥梦醉 | 来源:发表于2018-12-21 17:07 被阅读0次

概念:

组件是可以在自己的模板中调用自身的,不过他们只能通过name选项来做这件事。

使用vue框架,我们会发现export default 导出的对象中有一个name属性,这个name属性是一个比较重要的属性,而且属性好处不止这一处。

用法:

1.首先我们要知道,既然是递归组件,那么一定要有一个结束的条件,否则就会使用组件循环引用,最终出现 “max stack size exceeded”的错误,也就是栈溢出,那么我们可以用v-if=false作为递归条件的结束,当遇到v-if为false时,组件将不再进行渲染。

既然要用递归组件那么对我们的数据格式肯定是需要满足递归的条件的,就像下边这样,这是一个树状的递归数据。

接下来,我们就用这个树状数据,做一个简单版的树状结构,也是递归组件最常用的方法之一。

实践案例:

首先创建一个tree-father组件,这个组件作为使用递归组件的父组件

可以看到<tree/>就会我们说的递归组件,当使用它的时候,我们只需要把上边定义好的数据通过props的方式传递过去即可。

接下来,递归组件接收到了父组件传递的数据,就可以进行递归了,我们来看下边的实现

记住本文开头说的,那么属性的使用很重要,(你可把它当做从import导入了一个组件并注册,我们在template可以使用<tree></tree>使用子组件自身进行递归)

总结:

通过props从父组件拿到数据,递归组件每次进行递归的时候都会tree组件传递下一级children数据,整个过程结束之后,递归就完成了。当然这段代码只是简单的做了下递归组件的使用,对于树形结构的需求来说我们一般只会去渲染一级的数据,当点击一级菜单时,再去渲染一级菜单下的结构,如此往复。那么v-if就可以实现我们的这个需求,当v-if设置为false时,递归组件将不会再进行渲染,设置为true时,继续渲染。

相关文章

  • vue 中递归组件的用法

    概念: 组件是可以在自己的模板中调用自身的,不过他们只能通过name选项来做这件事。 使用vue框架,我们会发现e...

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

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

  • vue(2)

    Vue组件化开发 组件化开发的思想 组件的注册 组件间的数据交互 组件插槽的用法 Vue调试工具的用法 组件开发思...

  • vue递归组件

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

  • vue组件递归

    管理系统中很多这样树形菜单显示的,这里要用到组件的递归来完成,这里我们来学习下vue关于组件递归的实现。 ...

  • 35.Vue 递归组件

    在Vue中组件可以在模板内部递归调用自己,需要给组件设置name值,需要注意的是:必须限定条件,不能无限递归,否则...

  • 递归组件—树形结构效果

    递归组件treeMenu : 使用用法: 效果图:

  • 如何更好的胜任工作(开篇前)

    掌握工作中需要用到的技术 (1) vue vue基本指令用法 vue中的组件 vue中的路由 (2) js(包括e...

  • vue 局部组件递归

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

  • 2019-02-18 vue组件基础篇6

    组件高级用法递归组件 组件在它的模板内可以递归地调用自己,只要给组件设置name的选项就可以了。设置name后,在...

网友评论

      本文标题:vue 中递归组件的用法

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