这篇文章主要介绍“怎么使用vue递归实现树形组件”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“怎么使用vue递归实现树形组件”文章能帮助大家解决问题。1. 先来看一下效果:2. 代码部分 (myTree.vue)图片可以自己引一下自己的图片,或者使用iconfont的css引入。讲解:1、调用组件:我这用来一个global.js
来控制组件的使用(这个js附在文章末尾了),在component
文件夹中建立一个myTree
文件夹,里面放同名vue文件(myTree.vue
),这样无论在哪里调用这个组件,都可以直接使用
的方式去调用。2、组件的方法:scope():
会生成一个数组,里面有根节点是否有子节点,如本代码里设定的数据,会有scopes=[true,true,true]
这样的结果。changeStatus():
每点击标题或者箭头,如果当前下标的节点有没有子节点,再将结果动态赋值给scopesDefault[index]
,将这个值放于dom上控制开关,递归组件。checkBox():
在组件内部实现了点击全选、点击取消全选的功能,递归调用当前方法,将子元素的状态随父元素一起变化。selectnode():
将当前点击的node的节点内容上传到父组件。3、监听:同时监听:不同节点的切换、同一个节点的是否选中的切换,监听得到的结果都传到父组件中。4、组件递归:调用时与父组件相同3. 使用组件(useMyTree.vue)子组件主要是实现全选和取消全选。由于递归组件的原因,子组件拿不到完整的数据,所以接下来的两个功能:全选后某一个子节点取消选中则父节点取消选中、子节点全选后父节点自觉选中的功能就要在父组件中完成了。讲解:1、设值:树形数据必须有pid属性,用于向上遍历。2、方法:transformData():
将层级数据转为平行数据,避免后期不停的递归调用消耗时间,平级数据使用一般的循环即可完成。selectnode():
由子组件传递过来的方法,大致分为两个方向:选中、取消选中。选中时实现功能一:子节点全选后父节点自觉选中;取消选中实现功能二:全选后某一个子节点取消选中则父节点取消选中。getParentnode():
用于实现功能二。子节点取消选中后,根据pid,将在它上面级别的所有父节点列表拿到,再由方法updateParentCheck()
将父节点的check
值全部改为false
。childAllToParent():
用于实现功能一。递归调用该方法,将操作节点的父节点拿到,根据兄弟节点有相同的pid,拿到兄弟节点的个数,如果兄弟节点中被选中的个数等于兄弟节点的个数,则修改父节点的check
值为true
,直到到了根节点结束递归。这个组件实现起来不是很难,只要是心细就能很好的完成。如果后期需要使用某些数据的话,直接挂到data里就可以。如果有更好的方法或者存在某些疑问,欢迎小伙伴留言!附: (global.js => 放于component文件夹下)由此其实可以实现很多递归组件,如侧边栏。下面我放一个自己写的侧边栏的动图,方法比这个树形组件要简单些,毕竟不用考虑复选框的值。感兴趣的小伙伴们可以试着实践一下关于“怎么使用vue递归实现树形组件”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识,可以关注百云主机行业资讯频道,小编免费云主机域名每天都会为大家更新不同的知识点。
这篇“nginx如何禁止访问php”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“nginx如何禁止访问php”文章吧。 nginx禁止访问php…
免责声明:本站发布的图片视频文字,以转载和分享为主,文章观点不代表本站立场,本站不承担相关法律责任;如果涉及侵权请联系邮箱:360163164@qq.com举报,并提供相关证据,经查实将立刻删除涉嫌侵权内容。